La construcción de una Interfaz es la siguiente:
- public Interfaz NombreInterfaz{
- //Código
- }
Para declarar una o más Interfaces ponemos, a la derecha del nombre de la clase, la palabra clave "implements" seguido de los nombres de las interfaces separadas por comas.:
- class NombreClase implements Interfaz1,Interfaz2,Interfaz3{
- //Código
- }
También es posible heredar e implementar al mismo tiempo:
- class NombreClase extends Herencia implements Interfaz1,Interfaz2,Interfaz3{
- //Código
- }
Veamos algunas características de las Interfaces:
- Las Interfaces solo pueden tener visibilidad de package o public.
- Todos los métodos declarados en una Interfaz son public y abstract, si no se le indica, Java lo pondrá implícitamente.
- Los métodos de una Interfaz no pueden ser estáticos, ya que estos deben ser redefinidos, y al ser estáticos les sería imposible.
- Todos los atributos declarados en una Interfaz son "public static final" y deberán tener asignado un valor constante. Todos los nombres de constantes van en "MAYÚSCULAS"
- Una clase puede implementar una o más interfaces.
- Una Interfaz puede heredar de una o varias interfaces, pero no pueden implementar NADA. Como sabemos, las clases solo pueden heredar de otra clase, pero las Interfaces pueden hacer herencia múltiples.
- Todas las clases que implementen una interfaz deben de redefinir todos los métodos de esa interfaz.
- Las interfaces no tienen constructor, por lo que no es posible crear objetos con el operador "new" de ésta.
- Si se implementa en una clase una Interfaz, y esta Interfaz hereda de otra, la clase deberá implementar todos los métodos de la interfaz que implementa y de los métodos que esta hereda.
- Para la herencia de las interfaces se pone la palabra clave extends y se ponen todas las interfaces que se deseen separadas por comas.
- Una Interfaz puede ocultar constantes y métodos heredados de otras Interfaces si los vuelve a declarar en la clase que hereda.
Veamos un ejemplo:
Esta interfaz contiene:
- 2 Atributos constantes NUMERO1 y NUMERO2. Observaréis que un atributo es declarado como "final" y otro no, pues bien, aunque no se lo pongamos, java nos lo incluye implícitamente, con lo cual, aunque o esté puesto, sigue siendo "final"
- 4 métodos. Dijimos anteriormente que los métodos de una interfaz deben ser "public" y "abstract", yo en este ejemplo no los he puesto, ya que, como en el caso de los atributos, java nos pone los métodos "public" y "abstract" implícitamente.
- Creamos una clase con método MAIN e implementamos la interfaz Operaciones.
- Posteriormente deberemos redefinir sus métodos. Veréis que en el tipo de retorno obtengo los atributos de la interfaz Operaciones y puesto que no podemos crear objetos de la interfaz, ya que no utiliza constructores, hacemos su llamada a los atributos como:
- Operaciones.NUMERO1
- Operaciones.NUMERO2.
- Esto es debido a que son estáticos e inmutables. Este tipo de llamada también la vimos en la clase Math
- Posteriormente en la MAIN creamos un objeto de la clase Principal y llamamos a todos sus métodos y los mostramos por pantalla.
Una cosa que me gustaría dejar más o menos clara, y es que en la MAIN creamos un objeto de la clase Principal para llamar a sus métodos y no hacemos la llamada simplemente. Esto es debido a que la MAIN es un método estático y como tal solo puede aceptar atributos y métodos estáticos como los métodos que redefinimos de la interfaz no pueden ser estáticos, creo un objeto de la propia clase y los voy llamando. En temas posteriores haré una entrada para explicar mejor la palabra reservada "static".
Bien amigos, espero haber sido de ayuda.
Un saludo.
Excelente
ResponderEliminarGracias!
Bastante bien explicado las características de Interfaces.
ResponderEliminarExcelente explicación!! Me sirvió mucho
ResponderEliminarmuchas gracias!!
ResponderEliminarExcelente, DIOS TE BENDIGA AMIGO
ResponderEliminarExcelente explicación, me ayudó mucho.
ResponderEliminarPor fin alguien que pone ejemplos claros, muchas gracias, al final no era tan complicado lo de interfaz...
ResponderEliminarexcelente explicacion gracias !!
ResponderEliminarthaks you
ResponderEliminarMuchas gracias, me ayudo bastante
ResponderEliminarpor fin una buena explicación después de pasar por 1000 paginas
ResponderEliminarGracias!!!!!
ResponderEliminarMuy bien explicado, muchas gracias!
ResponderEliminarGracias por tu ayuda
ResponderEliminarMe sirvió de mucho, gracias!!!
ResponderEliminar