Sei sulla pagina 1di 10

Interfaces

Tecnología de la Programación I
Ing. Zoraida Vidal Melgarejo, Mg.

1
Interfaces
• Un interface es una colección de declaraciones de métodos
(sin definirlos) y también puede incluir atributos.
• El papel de la interface es el de describir algunas de las
características de una clase. Por ejemplo, el hecho de que
una persona sea un futbolista no define su personalidad
completa, pero hace que tenga ciertas características que las
distinguen de otras.
• Clases que no están relacionadas pueden implementar una
interface, por ejemplo, una clase que describa una animación
y una clase que realice un cálculo intensivo podrían
implementar una misma interface.

2
Interfaces
• Podría suceder que los objetos de varias clases compartan la
capacidad de ejecutar un cierto conjunto de operaciones.
• Y dependiendo de la clase de objeto, cada operación se
realice de diferente manera.
• Ejemplo:
– Clases: Circulo, Elipse, Triangulo, ....
– Todas esas clases incluyen los métodos: área, perímetro,
cambiarEscala, etc.
• Podríamos definir una interface común que agrupe todos los
métodos comunes (como métodos abstractos).
• Y luego definir varias clases de modo que implementen una
misma interfaz.

3
Ejemplo de Interfaz

public interface Figura {


public double PI=3.1416;

public double area();


public double perimetro();
}

4
Ejemplo de Interfaz

public class Circulo implements Figura {


private double radio;
...
public double area() {
return PI*radio*radio;
}
public double perimetro() {
return 2*PI*radio;
}
}

5
Ejemplo de Interfaz

public class Cuadrado implements Figura {


private double lado;
...
public double area() {
return lado*lado;
}
public double perimetro() {
return 4*lado;
}
}

6
Ejemplo de Interfaz

• La interface Figura tiene un atributo de nombre PI, y la


definición de dos métodos: area() y perimetro().
• Las clases que implementen a esta interface deben de
proporcionarle una implementación (cuerpo o código) a los
dos métodos definidos en la interface.
• El atributo de la interface se convierte en una constante
para las clases que implementan a la interface.

7
Herencia múltiple con Interfaces
• Una misma clase puede implementar más de una interfaz
 Simulación de herencia múltiple.
Pagos Descuentos

Empleado

public class Empleado implements Pagos, Descuentos {



}
8
Herencia entre Interfaces
• Un interface puede heredar de más de una interface 
Herencia múltiple de interfaces.
SeguroSocial AFP

Descuentos

public interface Descuentos extends SeguroSocial, AFP {



}
9
Agrupando objetos que comparten
la implementación de una Interface
• Se pueden declarar referencias a objetos que implementen
una cierta interfaz.

double totalArea(Figura v[]) {


double t=0;
for (int i=0; i<v.length; i++)
t += v[i].area(); // enlace dinámico
return t;
}

10

Potrebbero piacerti anche