LAS INTERFACES EN JAVA

Páginas: 6 (1487 palabras) Publicado: 4 de noviembre de 2015
LAS INTERFACES EN JAVA
Si una interfaz define un tipo (al igual que una clase define un tipo) pero ese tipo no provee de ningún método podemos preguntarnos: ¿qué se gana con las interfaces en Java? La implementación (herencia) de una interfaz no podemos decir que evite la duplicidad de código o que favorezca la reutilización de código puesto que realmente no provee código.  
En cambio sí podemosdecir que reúne las otras dos ventajas de la herencia: favorecer el mantenimiento y la extensión de las aplicaciones. ¿Por qué? Porque  al definir interfaces permitimos la existencia de variables polimórficas y la invocación polimórfica de métodos. En el diagrama que vimos anteriormente tanto árboles como arbustos, vehículos y personas son de tipo Actor, de modo que podemos generar código quehaga un tratamiento en común de todo lo que son actores. Por ejemplo, podemos necesitar una lista de Actores. Podemos declarar una variable como de tipo Actor (aunque no puedan existir instancias de Actor) que permita referenciar alternativamente a objetos de las distintas subclases de la interfaz.
Un aspecto fundamental de las interfaces en Java es hacer lo que ya hemos dicho que hace una interfazde forma genérica: separar la especificación de una clase (qué hace) de la implementación (cómo lo hace). Esto se ha comprobado que da lugar a programas más robustos y con menos errores. Pensemos en el API de Java. Por ejemplo, disponemos de la interfaz List que es implementada por las clases ArrayList y LinkedList (y también por otras varias clases).

 El hecho de declarar una variable de tipolista, por ejemplo List miLista; nos dice que miLista va a ser una implementación de List, pero todavía no hemos definido cuál de las posibles implementaciones va a ser. De hecho, el código podría definir que se implementara de una u otra manera en función de las circunstancias usando condicionales. O a nivel de programación, mantendríamos la definición como List y nos permitiría comprobarel rendimiento de distintas configuraciones (hacer funcionar miLista bien como ArrayList bien como LinkedList viendo su rendimiento). La variable declarada se crea cuando escribimos miLista = new LinkedList (); o también se puede usar la sintaxis: List miLista = new LinkedList ();
Usar una u otra implementación puede dar lugar a diferentes rendimientos de un programa.ArrayList responde muy bien para la búsqueda de elementos situados en posiciones intermedias pero la inserción o eliminación de elementos puede ser más rápida con una LinkedList. Declarando las variables simplemente como List tendremos la posibilidad de que nuestro programa pase de usar un tipo de lista a otro tipo.
Como List es un tipo, podemos especificar los métodos para que requieran List ydespués enviarles como parámetro bien un ArrayList bien un LinkedList sin tener que preocuparnos de hacer cambios en el código en caso de que usáramos uno u otro tipo de lista. En esencia, usando siempre List, el único sitio donde habría que especificar la clase concreta sería donde se declara la creación de la variable, con lo cual todo nuestro código (excepto el lugar puntual donde se crea lavariable) es independiente del tipo de lista que usemos y esto resulta ventajoso porque pasar de usar un tipo de lista a usar otro resultará muy sencillo.
Los métodos de ArrayList en algunos casos definen los métodos abstractos de List, y en otros casos son específicos. Recordar que en List todos los métodos son abstractos por ser una interfaz, aunque no se indique específicamente en la documentación delAPI de Java. Recordar también que List, por ser una interfaz no tiene constructores y no es instanciable. Al ver la documentación del API nos puede parecer una clase, pero la ausencia de constructor (aparte del propio nombre en el encabezado) delata que no se trata de una clase.
 Interface List
All Superinterfaces: Collection, Iterable
Otra ventaja clara de las interfaces es que nos...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Interfaces en java
  • Java Interfaces
  • Interfaces visuales en java
  • Interfaces Set y SortedSet Java se 6
  • java interfaces
  • Interfaces graficas en java
  • Interfaces graficas en java
  • Colecciones e Interfaces de Java

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS