Las interfaces pueden tener datos dentro de ellas pero estos siempre van a ser final y static.
También como en Java no contamos con la herencia múltiple, las interfaces nos ayudan a poder implementar esta utilidad que sirve muchísimo, en la entrada sobre herencia les comente esto, que con las interfaces podemos crear clases como el hidroavión que es un tipo de transporte aéreo y acuático a la vez y si queremos heredar de dos parte no podemos, aquí entran las interfaces, nos ayudan a simular una herencia múltiple.
Para poder utilizar las interfaces dentro de una aplicación lo debemos hacer utilizando la palabra reservada “implements” en la clase que queremos ocupar nuestra interfaces y para crear nuestra interfase debemos utilizar la palabra reservada “interface” en vez de la palabra “class”, la interfase puede declararse public o sin un modificador de acceso.
Ejemplo de esto:
interface Acuático
{
}
class Hidroavión extends Aéreo implements Acuático
{
}
Nosotros podemos hacer referencia de una interfase, pero no podemos instanciarlas, la referencia de las interfaces pueden ser implementadas a cualquier objeto que este utilizando la interfase.
Ejemplo:
Acuático hidro = new Hidroavión();
hidro.Acelerar(int velocidad);
A diferencia de las clases las interfaces pueden heredar más de una interfase, Veamos como se hace esto:
interface Nombre_Interfase extends Nom_Interface, Nom_Interface2,…
{
}
En el video de esta materia no voy hacer el ejemplo del hidroavión, ese se los dejo a ustedes para que practiquen, yo voy a explicar otro tipo de aplicación.
Descargar: Video utilización de las Interfaces.






2 comentarios:
Como bien lo defines las interfaces nos sirven como protocolos entre clases (llamados contratos), con los cuales yo me aseguro que las clases de terceros que implementen interfaces sea cumplida a cabalidad, tambien nos da la nocion de herencia multiple al permitir extender hacia diferentes clases. Una de las diferencias más importantes con las clases abstractas es que las interfaces tambien pueden ser implementadas por estructuras, las cuales no se almacenan en el mismo sector de memoria que las clases y por ende su optimizacion y manejo no es el mismo que con las clases....
Suerte con tu blog.
Exactamente loser, como dices que las interfaces tienen una diferencia muy grande con las clases abstractas, sin duda estas en lo correcto con que pueden implementarse por estructuras.
Puede que se me haya escapado ese detalle pero mi idea original cuando compare con las clases abstractas era para que los lectores con poco conocimiento y experiencia entiendan la función de las interfaces que es parecida a las clases abstractas.
Muchas gracias por tu aporte.
Para toda persona que quiera hacer aportes, es libre de hacerlo y será muy agradecido.
Saludos.
Publicar un comentario en la entrada