Está en la página 1de 19

Ing.

Tatiana Gualotuña
 Determinar la potencialidad de Interfaces en
Java y su aplicabilidad para herencia
múltiple
 Diferenciar entre clases abstractas y clases
interfaces
3
 Una interfaz en Java es una clase en la que
todos sus métodos son abstractos. En ellas se
especifica qué se debe hacer pero no su
implementación. Serán las clases que
implementen estas interfaces las que
implementen el comportamiento de los
métodos.
 proporciona dos palabras reservadas para
trabajar con interfaces: interface e
implements.
5
 Una interfaz en Java es una colección de métodos sin
sus implementaciones con un nombre. Una
interface también puede declarar constantes. Por
cuanto una interface es simplemente una lista de
métodos sin implementación, (métodos abstractos).
 Las interfaces están asociadas a comportamiento.
modificador_acceso interface NombreInterfaz
{
....
}

 modificador_acceso puede ser public o de no


existir, siendo entonces por defecto package.
 Los atributos que definamos en el cuerpo de la
interfaz serán atributos de tipo constante (final) y
static en las clases en las que se implemente.
 Todos los métodos son abstractos (no se
implementa ninguno)
 modificador_acceso NombreClase
implements NombreInterfaz1 [,
NombreInterfaz2]

 Una clase puede implementar varias


interfaces, separando los nombres por comas
y sólo puede extender una clase. Es lo más
parecido que tiene Java a la herencia
múltiple.
9
 Definición

interface Nave {
public static final int VIDA = 100;

public abstract void moverPosicion (int x, int y);


public abstract void disparar();
.....
}
 Implementación

public class NaveJugador implements Nave {


public void moverPosicion (int x, int y){
//Implementación del método
}

public void disparar(){


//Implementación del método
}

....
}
 Es posible crear referencias a interfaces, pero
las interfaces no pueden ser instanciadas.
Una referencia a una interface puede ser
asignada a cualquier objeto que implemente
la interface.
 La definición de un interfaz no tiene
constructor, por lo que no es posible invocar
el operador new sobre un tipo interfaz.
 Se tiene una clase abstracta Persona que
tiene como atributos nombre y edad
 Una clase interfase Enfermo que tiene
métodos: tomarTemperatura, tomar
Medicamentos
 Una clase Empleado es una persona y esta
enferma. Posee atributos sueldo y dirección.

16
 En la interface todo método es abstracto y público sin
necesidad de declararlo, por lo tanto no implementará
ningún método que declara.

 Las variables declaradas en una interface serán variables


de clase y nunca de instancia por lo que su valor será
constante en todas las instancias que se creen de la clase
que implementa una interface.

 Una interface se implementa (implements) no se extiende


(extends)

 Una clase puede implementar más de un interfaz, pero


sólo puede extender de una clase (es lo más parecido
que tiene Java a la herencia múltiple)
 Se plantea desarrollar un programa Java que
permita representar la siguiente situación. Una
instalación deportiva es un recinto delimitado
donde se practican deportes, en Java interesa
disponer de un método int getTipoDeInstalacion().
Un edificio es una construcción cubierta y en Java
interesa disponer de un método double
getSuperficieEdificio(). Un polideportivo es al mismo
tiempo una instalación deportiva y un edificio; en
Java interesa conocer la superficie que tiene y el
nombre que tiene. Un edificio de oficinas es un
edificio; en Java interesa conocer el número de
oficinas que tiene.
 Definir dos interfaces y una clase que
implemente ambas interfaces para
representar la situación anterior. En una clase
test con el método main, crear un ArrayList
que contenga tres polideportivos y dos
edificios de oficinas y utilizando un iterator,
recorrer la colección y mostrar los atributos
de cada elemento. ¿Entre qué clases existe
una relación que se asemeja a la herencia
múltiple?

También podría gustarte