Concepto de interface
Una interface es un conjunto de declaraciones de métodos (sin definición). También puede definir
constantes, que son implícitamente public. static y final, y deben siempre inicializarse en la
declaración. Estos métodos definen un tipo de conducta. Todas las clases que implementan una
determinada interface están obligadas a proporcionar una definición de los métodos de la interface.
y en ese sentido adquieren una conducta o modo de funcionamiento.
Una clase puede implementar una o varias interfaces. Para indicar que una clase implementa
una o más interfaces se ponen los nombres de las interfaces. separados por comas, detrás de la
palabra implements, que a su vez va siempre a la derecha del nombre de la clase o del nombre de la
super-clase en el caso de herencia. Por ejemplo.
public class
CirculoGrafico extends Circulo
implements Dibujable, Cloneable {
}
¿Qué diferencia hay entre una interface y una clase abstract? Ambas tienen en común que
pueden contener varias declaraciones de métodos (la clase abstract puede además definirlos). A
pesar de esta semejanza, que hace que en algunas ocasiones se pueda sustituir una por otra, existen
también algunas diferencias importantes:
- Una clase no puede heredar de dos clases abstract. pero sí puede heredar de una clase abstract e implementar una interface. o bien implementar dos o más interfaces.
- Una clase 110 puede heredar métodos -definidos- de una interface. aunque sí constantes.
- Las interfaces permiten mucha más flexibilidad para conseguir que dos clases tengan el mismo comportamiento, inpendientemente de su situación en la jerarquía de clases de Java.
- Las interfaces permiten "publicar" el comportamiento de una clase desvelando un mínimo de información.
- Las interfaces tienen una jerarquía propia, independiente y más flexible que la de las clases, ya que tienen permitida la herencia múltiple.
- De cara al polimorfismo (recordar el Apartado 1.3.8, a partir de la página 15). las referencias de un tipo interface se pueden utilizar de modo similar a las clases abstract.
No hay comentarios:
Publicar un comentario