Powered By Blogger

jueves, 30 de junio de 2011

Puntos extras - Interfaces

Interfaces

Los métodos abstractos son útiles cuando se quiere que cada implementación de la clase parezca y funcione igual, pero necesita que se cree una nueva clase para utilizar los métodos abstractos.

Los interfaces proporcionan un mecanismo para abstraer los métodos a un nivel superior.


Un interface contiene una colección de métodos que se implementan en otro lugar. Los métodos de una clase son publicstatic y final.

Un interface es parecido a una clase abstracta en Java, pero con las siguientes diferencias:
  • Todo método es abstracto y público sin necesidad de declararlo. Por lo tanto un interface en Java no implementa ninguno de los métodos que declara.
  • Las varibles del interface serán las variables miembro de la clase.
  • Un interface se implementa (implements) no se extiende (extends) por sus subclases.
  • Una clase puede implementar más de un interfaz en Java, pero sólo puede extender una clase. Es lo más parecido que tiene Java a la herencia múltiple, que de clases normales está prohibida.
  • Podemos declarar variables del tipo de clase del interfaz, pero para inicializarlas tendremos que hacerlo de una clase que lo implemente.

Ejemplo:


public interface VideoClip {
         // comienza la reproduccion del video    
         void play();
         // reproduce el clip en un bucle 
         void bucle();
         // detiene la reproduccion
         void stop();
         }


Las clases que quieran utilizar el interface VideoClip utilizarán la palabra implements y proporcionarán el código necesario para implementar los métodos que se han definido para el interface:


class MiClase implements VideoClip {
         void play() {
             <código>
             }
         void bucle() {
             <código>
             }
         void stop() {
             <código>
             }


Al utilizar implements para el interface es como si se hiciese una acción de copiar-y-pegar del código del interface, con lo cual no se hereda nada, solamente se pueden usar los métodos.



Referencias:










No hay comentarios:

Publicar un comentario