Você está na página 1de 2

Definiciones

Interface

Abstract

El concepto de Interface lleva un paso ms adelante la idea de las clases abstractas. En Java una interface es una clase abstracta pura, es decir una clase donde todos los mtodos son abstractos (no se implementa ninguno). Permite al diseador de clases establecer la forma de una clase (nombres de mtodos, listas de argumentos y tipos de retorno, pero no bloques de cdigo). Una interface puede tambin contener datos miembro, pero estos son siempre static y final. Una interface sirve para establecer un 'protocolo' entre clases. Para crear una interface, se utiliza la palabra clave interface en lugar de class. La interface puede definirse public o sin modificador de acceso, y tiene el mismo significado que para las clases. Todos los mtodos que declara una interface son siempre public. Para indicar que una clase implementa los mtodos de una interface se utiliza la palabra clave implements. El compilador se encargar de verificar que la clase efectivamente declare e implemente todos los mtodos de la interface. Una clase puede implementar ms de una interface.

Una de las caractersticas ms tiles de cualquier lenguaje orientado a objetos es la posibilidad de declarar clases que definen como se utiliza solamente, sin tener que implementar mtodo. Esto en Java se hace mediante interfaces y con clases abstractas. Una clase abstracta es una clase de la que no se puede crear objetos. La utilidad de estas clases estriba en que otras clases hereden de sta, por lo que con ello conseguiremos reutilizar cdigo. Para declarar una clase como abstracta utilizamos la palabra clave abstract.

Los mtodos para los que no aporte una implementacin sern declarados a su vez abstractos. Si una clase tiene un mtodo abstract es obligatorio que la clase sea abstract. Todas las subclases que hereden de una clase abstracta tendrn que redefinir los mtodos abstractos dndoles una implementacin. En el caso de que no implementen alguno de esos mtodos la clase hija tambin ser abstracta y tendr que declararse como tal (tanto la clase como los mtodos que siguen siendo abstractos).
En mtodo abstract no pude ser static, ya que estos no pueden ser redefinidos por las subclases.

Diferencias entre interface y abstract

Un interface es simplemente una lista de mtodos no implementados, adems puede incluir la declaracin de constantes. Una clase abstracta puede incluir mtodos implementados y no implementados o abstractos, miembros dato constantes y otros no constantes. Ahora bien, la diferencia es mucho ms profunda. Imaginemos que Runnable fuese una clase abstracta. Un applet descrito por la clase MiApplet que moviese una figura por su rea de trabajo, derivara a la vez de la clase base Applet (que describe la funcionalidad mnima de un applet que se ejecuta en un navegador) y de la clase Runnable. Pero el lenguaje Java no tiene herencia mltiple. En el lenguaje Java la clase MiApplet deriva de la clase base Applet e implementa el interface Runnable
class MiApplet extends Applet implements Runnable{ //... //define la funcin run del interface public void run(){ //... } //redefine paint de la clase base Applet public void paint(Graphics g){ //... } //define otras funciones miembro }

Una clase solamente puede derivar extends de una clase base, pero puede implementar varios interfaces. Los nombres de los interfaces se colocan separados por una coma despus de la palabra reservada implements. El lenguaje Java no fuerza por tanto, una relacin jerrquica, simplemente permite que clases no relacionadas puedan tener algunas caractersticas de su comportamiento similares.

Você também pode gostar