Ver Mensaje Individual
  #4 (permalink)  
Antiguo 21/06/2011, 19:14
Avatar de Carlangueitor
Carlangueitor
Moderador ლ(ಠ益ಠლ)
 
Fecha de Ingreso: marzo-2008
Ubicación: México
Mensajes: 10.037
Antigüedad: 16 años, 9 meses
Puntos: 1329
Respuesta: Duda Interfaces

Suponiendo que no hablas de Interfaces Gráficas:

Una interface es una clase que contiene sólo métodos abstractos y atributos que son static y final. Un ejemplo sencillo, supongamos que estás programando un videojuego, tiene varios vehículos, algunos de estos vuelan y otros se sumergen en el agua, pero todos se mueven y disparan, así que podríamos hacer esto:

Código Java:
Ver original
  1. interface Volador{
  2.     //Los atributos son final y static,
  3.     //pero no tienes que ponerlo,
  4.     //lo mismo con los métodos abstractos.
  5.    
  6.     int ALTURA_DE_VUELO = 20;
  7.    
  8.     void despegar();
  9.     void aterrizar();
  10.     }
  11.    
  12. interface Sumergible{
  13.    
  14.     int PROFUNDIDAD = -20;
  15.    
  16.     void sumergirse();
  17.     void emerger();
  18.     }

Ahora podríamos tener cuatro clases de las que se deriven todo tipo de vehículos:

Código Java:
Ver original
  1. class Vehiculo{
  2.  
  3.     void avanzar(){
  4.         //Definición  método Avanzar
  5.     }
  6.     void detenerse(){
  7.         //Definición  método Detenerse
  8.     }
  9. }  
  10.  
  11. class VehiculoQueVuela extends Vehiculo implements Volador{
  12.     void despegar(){
  13.         //Definición  método
  14.     }
  15.     void aterrizar(){
  16.         //Definición  método
  17.     }
  18. }
  19. class VehiculoQueSeSumerge extends Vehiculo implements Sumergible{
  20.     void sumergirse(){
  21.         //Definición  método
  22.     }
  23.     void emerger(){
  24.         //Definición  método
  25.     }
  26. }
  27. class VehiculoQueSeSumergeYVuela extends Vehiculo implements Sumergible, Volador{
  28.     void despegar(){
  29.         //Definición  método
  30.     }
  31.     void aterrizar(){
  32.         //Definición  método
  33.     }
  34.     void sumergirse(){
  35.         //Definición  método
  36.     }
  37.     void emerger(){
  38.         //Definición  método
  39.     }
  40. }
Con eso podríamos tener algo como esto:
Código Java:
Ver original
  1. VehiculoQueSeSumergeYVuela vehiculo = new VehiculoQueSeSumergeYVuela();
  2.  
  3. vehiculo.avanzar();
  4. vehiculo.despegar();
  5. vehiculo.aterrizar();
  6. vehiculo.sumergirse();
  7. vehiculo.emerger();

En resumen, las interfaces son clases puramente abstractas, y como tales no permiten la instanciación, una clase puede implementar varias interfaces y las interfaces se puede heredar de otras interfaces.

Cualquier duda me dices.

Saludos
__________________
Grupo Telegram Docker en Español

Última edición por Carlangueitor; 21/06/2011 a las 22:13