Está en la página 1de 4

Escuela Superior Politécnica del Litoral

Programación Orientada a Objetos


Unidad 4

Objetivos
• Implementar programas que hagan uso de Interfaces y Polimorfismo para creación
de software extensibles y mantenible.

Descripción:
Parte 1 – Exploración de conocimientos
o Una interfaz es usada para modelar comportamiento.
o Una interfaz define métodos abstractos y constantes.
o Todos los métodos de la interfaz son públicos así no pongamos modificador.
o Una interfaz no tiene un constructor y no puede ser instanciada.

public interface interfaceA {


double metodo1(); //el metodo es publico
public void metodo2(); //el metodo es publico
}

o Para indicar que una clase implementa una interfaz debemos usar la palabra
reservada implements.

public class Test implements interfaceA{


public double metodo1(){ //implementacion metodo 1}
public void metodo2(){//implementacion metodo 2}
}

o La clase que implementa la interfaz debe implementar todos los métodos


abstractos de la interfaz o ser declarada abstracta.

public abstract class Test2 implements interfaceA{


public double metodo1(){ //implementacion metodo 1}
}

La clase Test2 debe ser abstracta porque no implementa todos los métodos
declarados en InterfaceA (no implementa metodo2)
• Una clase puede implementar múltiples interfaces. La clase deberá implementar los
métodos abstractos de todas las interfaces que implementa

public interface interfaceB{


public void metodo3();
}

public class ClaseA implements interfaceA, interfaceB{

La ClaseA debe implementar los métodos en interfaceA e interfaceB para poder ser
concreta

o ¿Cuáles son los métodos abstractos en Test2?

• Una interfaz poder extender de otras interfaces.

public interface interfaceC{


public void metodo4();
}

public interface interfaceD extends interfaceC{


public void metodo5();
}

o La clase que implemente la interfaceD debe implementar los métodos


abstractos definidos en interfaceD y interfaceE (metodo4 y metodo5).

• Relación entre clases e interfaces


Ejercicio Clase
• Defina la interfaz Figura2D con el métodos abstractos area():double y
perimetro():double
• Defina la interfaz Figura3D con el método abstracto volumen():double
• Defina las clases Circulo y PoligonoRegular. Ambas clases deben implementar la
interfaz Figura2D. Un polígono regular tiene todos sus lados iguales

El perímetro y área del círculo se calcula de la siguiente forma:


Perímetro = 2 * pi * radio
Área = pi * radio * radio

El perímetro y área de un polígono regular se calcula de la siguiente forma:


Perímetro = numero_lados * dimension_lado
Área = (perimetro * apotema ) / 2

Más información: http://www.universoformulas.com/matematicas/geometria/apotema/

• Defina la clase Esfera. La clase Esfera debe implementar las interfaces figura
Figura2D y Figura3D.

La fórmula del área y volumen de la esfera:


𝑷 = 𝟐 ∗ 𝝅 ∗ 𝐑

• Defina la clase cubo. La clase cubo debe implementar las interfaces figura Figura2D y
Figura3D.

La fórmula del área y volumen del cubo es:

P = 12 * a
Defina una clase TestInterfaces, y dentro del método main haga lo siguiente:
• Cree 2 círculos, 2 PoligunoRegulares, 2 esferas y 2 cubos y almacénelos en un
ArrayList llamado figuras.
o ¿Qué tipo de dato debe usar en la declaración del arreglo figuras para
poder alcenar los objetos de tipo círculos, cuadrados, esferas y cubos?
o ArrayList<Figura2D> figuras = new ArrayList<>();
• Recorra el arreglo e imprima para cada figura: imprima su clase, el área y perímetro
de la misma. Si la figura es de 3 dimensiones imprima también el volumen.

Responda las siguientes preguntas


• ¿Qué métodos debe implementar la clase Circulo y por qué?
• ¿Qué métodos debe implementar la clase Esfera y por qué?
• ¿Qué tipo uso como base para el ArrayList figuras?
• Por cada declaración, indique si es válida o no. Si no es válida diga por qué no es
válida.
o Figura2D f2 = new Figura2D();
o Figura2D f3 = new Circulo();
o PoligonoRegular cu1 = new Figura2D();
o Circulo c1 = new PoligonoRegular();
o Figura2D a = new Esfera();
o Figura3D b = new Esfera();
o Figura2D c = new Cubo();
o Figura3D d = (Figura3D) c;
o Cubo e = (Cubo) c;

• Una figura de 3 dimensiones tiene también área y perímetro. Cómo modificaría


usted la interfaz Figura3D para modelar esta afirmación.

También podría gustarte