Ver Mensaje Individual
  #5 (permalink)  
Antiguo 21/06/2011, 19:47
Avatar de HackmanC
HackmanC
 
Fecha de Ingreso: enero-2008
Ubicación: Guatemala
Mensajes: 1.817
Antigüedad: 16 años, 10 meses
Puntos: 260
Sonrisa Respuesta: Duda Interfaces

Hola,

Muy buena explicación, solamente quisiera agregar algo, según la RAE:
Cita:
interfaz.
(Del ingl. interface, superficie de contacto).
1. f. Inform. Conexión física y funcional entre dos aparatos o sistemas independientes.
http://buscon.rae.es/draeI/SrvltGUIB...?LEMA=interfaz
De lo cual se puede concluir que sirve para unir dos componentes de alguna forma que sea genérica, solamente importando la compatibilidad, eso permite que se conecten varios componentes polimórficos (que pueden tener diferentes formas). Y creo que un ejemplo más específico podría ser:
Código Java:
Ver original
  1. public interface Animal {
  2. }
  3.  
  4. public class Perro implements Animal {
  5. }
  6.  
  7. public class Gato implements Animal {
  8. }
  9.  
  10. public class Jaula {
  11.   public void enjaular(Animal animalito) {
  12.   }
  13. }
  14.  
  15. Jaula jaula = new Jaula();
  16. jaula.enjaular(new Perro); // Enjaulé un perro.
  17. jaula.enjaular(new Gato); // Enjaulé un gato en la misma jaula,
  18. // posiblemente a la par del perro, dependiendo de la implementación de enjaular.
Si ves en el ejemplo, yo puedo enjaular un animal en una jaula, valga la redundancia, sin importar si es un perro o un gato puesto que los dos son animales, sino existieran las interfaces tendría que duplicar la funcionalidad, una para enjaular perros y otra para enjaular gatos.

Aunque algunas veces se confunde el concepto de las clases abstractas y las interfaces puesto que ofrecen una funcionalidad parecida. A mi en lo personal me gusta pensar en una interfaz como un contrato o certificado, si el Perro está certificado como Animal puede ser usado y aceptado en cualquier lugar donde se acepte o permita el certificado de Animal.

Saludos,