interfaces
TRANSCRIPT
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Materia
Programación de Aplicaciones
Tema
INTERFACES
Nombre completo del Alumno : Azucena Pérez Gallegos
Grado: 9 Grupo: “A” Nombre del Docente: ISC. Omar Emmanuel Lara Juárez Fecha de entrega : 10/07/2015
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Interfaces Interfaces en Java
Una Interface es una Clase completamente Abstracta, como regla, sabemos que
las clases abstractas poseen como mínimo un método abstracto, pero hablando
de una interface, todos sus métodos tienen que serlo...
Como vimos en la entrada sobre conceptos básicos, las interfaces muchas
veces son definidas como un tipo de contrato entre las clases concretas que la
implementen, ya que la clase que lo haga se encuentra obligada a definir los
métodos abstractos que la componen.
Herencia Múltiple
Las interfaces simulan la herencia múltiple ya que una clase puede implementar
cualquier número de interfaces, además las interfaces pueden heredar uno o más
números de interfaces mediante la palabra extends, pero jamás podrán heredar
clases concretas...
En java se usa la palabra reservada implements para indicar que implementamos
una interface.
Características de las Interfaces
Todos los métodos de una interfaz son implícitamente public abstract, no
es necesario especificarlo en la declaración del mismo.
Todas las variables y atributos de una interfaz son implícitamente
constantes (public static final), no es necesario especificarlo en la
declaración del misma
Los métodos de una interfaz no pueden ser: static, final, strictfp ni native.
Una interfaz puede heredar (extends) de una o más interfaces.
Una interfaz no puede heredar de otro elemento que no sea una interfaz.
Una interfaz no puede implementar (implements) otra interfaz.
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Una interfaz debe ser declarada con la palabra clave interface.
Los tipos de las interfaces pueden ser utilizados polimórficamente.
Una interfaz puede ser public o package (valor por defecto).
Los métodos toman como ámbito el que contiene la interfaz.
Tanto para clases Abstractas como para Interfaces la herencia es permitida, pero
por ejemplo para este tipo componentes, si una interface hereda de otra, esta no
está obligada a implementar los métodos que posee la Interface padre, ya que la
implementación tanto de los métodos de la clase padre como de la interface que
los hereda depende de la clase concreta que implemente dicha interface........
este principio también aplica a las clases Abstractas, si una clase abstracta
implementa una interface, los métodos de esta no necesariamente se deben
implementar en la clase Abstracta, pero si se tienen que implementar en la clase
concreta que herede de la clase abstracta....
¿Cuándo utilizarlas?
Su uso está muy ligado al concepto de herencia y cumple el mismo principio que
aplicamos al usar clases abstractas, lo que buscamos es establecer un
mecanismo donde podamos compartir características comunes entre clases
diferentes, además al igual que con clases abstractas nos aseguramos que los
métodos y atributos solo están disponibles para las clases que las implementen...
Ejemplo
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
En el diagrama de clases vemos 6 clases concretas y 2 interfaces, las clases
Humano y Animal son clases padre de "Hombre y Mujer" y "Perro y Gato"
respectivamente, ahora bien, Humano y Animal son clases diferentes con un
árbol de herencia marcado, pero ambas poseen características comunes que
podemos usar por medio de la interface Acciones General.
Podemos decir que tanto un Hombre como un Gato pueden caminar, usando para
esto el método desplazarse(), donde cada clase dará el mecanismo de
desplazamiento, por ejemplo el hombre lo hace en 2 piernas mientras que el gato
en 4 patas (o dependiendo de la forma como lo realicen), y este mismo concepto
puede aplicarse a los otros métodos enmarcados en la Interface Acción General
que tanto Humanos como Animales comparten.
También tenemos la interface Acciones Humano para esos métodos o
características que solo son aplicables a los humanos y que tanto Hombre como
Mujer pueden adoptar, así la clase Humano podrá simular la herencia múltiple al
implementar las 2 interfaces mencionadas.
UNIVERSIDAD TECNONOLÓGICA DEL ESTADO DE ZACATECAS UNIDAD ACADÉMICA DE PINOS
TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN
Conclusión
Polimorfismo es la capacidad de un objeto de adquirir varias formas. El uso más
común de polimorfismo en programación orientada a objetos se da cuando se
utiliza la referencia de una clase padre, para referirse al objeto de la clase hijo.
Cualquier objeto java que pueda pasar más de un test "ES-UN" es considerado
polimórfico. En Java, todos los objetos son polimórficos ya que cualquier objeto
pasaría un test "ES-UN" dado que son de su propio tipo, además del de la clase
Object.
Es importante saber que la única manera de acceder a un objeto es a través de
una variable de referencia. La variable de referencia sólo puede ser de un tipo.
Una vez declarado el tipo de la variable de referencia, no se puede cambiar.
La variable de referencia puede ser reasignada a otros objetos, siempre y cuando
no haya sido declarada "final". El tipo de la variable de referencia, determina los
métodos que podrán ser llamados sobre el objeto.
Una variable de referencia puede hacer referencia a cualquier objeto o cualquier
subtipo de su propio tipo.
Diferencia entre Implementar y Heredar
El extends se usa para heredar el contenido de otra clase y el implements se usa
para implementar clases abstractas, las cuales poseen declaraciones de funcione
o métodos sin implementar o sin cuerpo por esa razón cuando se utilice un
implements debemos de sobrescribir todas las funciones de la clase.
EXTENDS
Permite heredar todo el contenido ósea los atributos y métodos de clase padre a la
clase hija o derivada.
IMPLEMENTS
Permite implementar los métodos sin cuerpo de una clase abstracta.