Foros aprenderaprogramar.com
Aprender a programar => Aprender a programar desde cero => Mensaje iniciado por: camoay en 07 de Diciembre 2016, 00:33
-
Buenas noches, aquí les dejo mi ejercicio:
Interface InstalacionDeportiva:
package aprenderaprogramar.java.iniciacion.clase97;
public interface InstalacionDeportiva {
public int getTipoInstalacion();
}// fin interface
Interface Edificio:
package aprenderaprogramar.java.iniciacion.clase97;
public interface Edificio {
double getSuperficieEdificio();
}// fin interface
Clase Polideportivo:
package aprenderaprogramar.java.iniciacion.clase97;
public class Polideportivo implements InstalacionDeportiva,Edificio {
private String nombre;
private int tipoDeInstalacion;
private double superficieEdificio;
// constructores
public Polideportivo() { nombre =""; tipoDeInstalacion = 0; superficieEdificio = 0;}
public Polideportivo(String nombre,int tipoDeInstalacion,double superficieEdificio) {
this.nombre = nombre;
this.tipoDeInstalacion = tipoDeInstalacion;
this.superficieEdificio = superficieEdificio;
}
// métodos
// getters and setters
public String getNombre() { return nombre; }
public void setNombre(String nombre) { this.nombre = nombre; }
public int getTipoInstalacion(){ return tipoDeInstalacion; }// método implementado del interface InstalacionDeportiva
public void setTipoDeInstalacion(int tipoDeInstalacion) { this.tipoDeInstalacion = tipoDeInstalacion; }
public double getSuperficieEdificio(){ return superficieEdificio; }// método implementado del interface Edificio
public void setSuperficieEdificio(double superficieEdificio) { this.superficieEdificio = superficieEdificio; }
// otros métodos
public String toString(){
return "Nombre: "+nombre+" , Tipo de Instalación: "+tipoDeInstalacion+" , Superficie del Edificio: "+superficieEdificio+" m²."; }
} // fin de clase
Clase EdificioDeOficinas:
package aprenderaprogramar.java.iniciacion.clase97;
public class EdificioDeOficinas implements Edificio{
private int numeroDeOficinas;
private double superficieEdificio;
// constructores
EdificioDeOficinas(){ numeroDeOficinas = 0; superficieEdificio = 0; }
EdificioDeOficinas(int numeroDeOficinas,double superficieEdificio){
this.numeroDeOficinas = numeroDeOficinas;
this.superficieEdificio = superficieEdificio; }
// métodos
// getters and setters
public double getSuperficieEdificio(){return superficieEdificio;}// método implementado del interface Edificio
public void setSuperficieEdificio(double superficieEdificio) { this.superficieEdificio = superficieEdificio; }
public int getNumeroDeOficinas() { return numeroDeOficinas; }
public void setNumeroDeOficinas(int numeroDeOficinas) { this.numeroDeOficinas = numeroDeOficinas; }
// otros métodos
public String toString(){
return "Número de oficinas: "+numeroDeOficinas+" , Superficio del Edificio: "+superficieEdificio+" m²."; }
}// fin de clase
Clase Test:
package aprenderaprogramar.java.iniciacion.clase97;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class Test {
public static void main(String[] args) {
// creo los objetos del arrayList
Edificio poli1 = new Polideportivo("Pancho Camurria", 4, 12000);
Edificio poli2 = new Polideportivo("La Hamburguesa", 3, 15000);
Edificio poli3 = new Polideportivo("Polideportivo Municipal S/C de Tenerife",1 , 60000);
Edificio oficinas1 = new EdificioDeOficinas(10, 2000);
Edificio oficinas2 = new EdificioDeOficinas(20, 3000);
// creo el ArrayList y añado los objetos creados
List <Edificio> misEdificios = new ArrayList<Edificio>();
misEdificios.add(poli1);misEdificios.add(poli2);misEdificios.add(poli3);misEdificios.add(oficinas1);misEdificios.add(oficinas2);
// listo todos los objetos con sus datos
Iterator <Edificio> it = misEdificios.iterator();
System.out.println("Los Edificios de la Lista son: \n" );
while(it.hasNext()){
Edificio tmp = it.next();
if(tmp instanceof Polideportivo)
System.out.print("Polideportivo -> ");
else
System.out.print("Edificio de oficinas -> ");
System.out.println(tmp.toString());
}// fin while
}// fin método main
}// fin de clase
La pregunta y su respuesta
¿Entre qué clases existe una relación que se asemeja a la herencia múltiple?
Entre la clase Polideportivo y las Interfaces InstalacionDeportiva y Edificio.
Agradeceré sus correcciones o sugerencias.
-
Buenos días.
El ejercicio es correcto.
Puedes ver como lo han hecho otros compañeros y comentarios en los siguientes enlaces:
https://www.aprenderaprogramar.com/foros/index.php?topic=5016.msg20137#msg20137 (https://www.aprenderaprogramar.com/foros/index.php?topic=5016.msg20137#msg20137)
https://www.aprenderaprogramar.com/foros/index.php?topic=2521.msg11922#msg11922 (https://www.aprenderaprogramar.com/foros/index.php?topic=2521.msg11922#msg11922)
https://www.aprenderaprogramar.com/foros/index.php?topic=4724.msg19237#msg19237 (https://www.aprenderaprogramar.com/foros/index.php?topic=4724.msg19237#msg19237)
Un saludo
-
Hola lo veo todo bien, es interesante ver en partes como Edificio poli1 = new Polideportivo("Pancho Camurria", 4, 12000);
cómo se utiliza el tipo estático Edificio (tipo de la interface) y luego se instancia usando el tipo dinámico Polideportivo, esto es un ejemplo de uso del polimorfismo.
Saludos.