Hola Buenas tardes.
He revisado la solución planteada como correcta, pero igual no cumple el enunciado del ejercicio en el cual indica que se cree una clase que implemente las dos interfaces, para lo cual en la solución genera dos clases que implementas las dos interfaces, por esta razón en mi respuesta trato de hacer lo indicado.
Con respecto a las observaciones dadas mi código si tiene las falencias indicadas y he tratado de corregirlas en base a mi interpretación de enunciado, y las dejo a continuación.
El uso de la clase construcción pretende incluir cualquier tipo de edificación sea esta un edificio, un polideportivo que son materia de este ejercicio, por lo cual he usado en mi nueva solución la clase como edificación
Saludos y gracias por el tiempo brindado
package claseCU00697B_2;
public interface Edificio {
public double getSuperficieEdificio();
}
package claseCU00697B_2;
public interface InstalacionDeportiva {
int getTipoDeInstalacion();
}
package claseCU00697B_2;
public class Edificacion implements Edificio, InstalacionDeportiva {
private int tipoInstalacion;
private double superficieEdificio;
private String nombreInstalacion;
private int numeroDeOficinas;
//Constructor para Instalaciones Deportivas
public Edificacion(int pTipoInstalcion, double pSuperficieEdificio, String pNombreInstalacion) {
this.tipoInstalacion = pTipoInstalcion;
this.superficieEdificio = pSuperficieEdificio;
this.nombreInstalacion = pNombreInstalacion;
}
//Constructor para Edificio de Oficinas
public Edificacion(double pSuperficieEdificio, int pNumeroDeOficinas, String pNombreInstalacion) {
this.superficieEdificio = pSuperficieEdificio;
this.nombreInstalacion = pNombreInstalacion;
this.numeroDeOficinas = pNumeroDeOficinas;
}
public String getNombreInstalacion() {
return this.nombreInstalacion;
};
public int getNumeroDeOficinas() {
return this.numeroDeOficinas;
}
@Override
public int getTipoDeInstalacion() {
// TODO Auto-generated method stub
return this.tipoInstalacion;
}
@Override
public double getSuperficieEdificio() {
// TODO Auto-generated method stub
return this.superficieEdificio;
}
}
package claseCU00697B_2;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class TestEdificacion {
public static void main(String[] args) {
List<Edificacion> listaEdificios;
listaEdificios = new ArrayList<Edificacion>();
listaEdificios.add(new Edificacion(1,320.5,"Coliseo Baloncesto"));
listaEdificios.add(new Edificacion(2,500.0,"Piscina Olimpica"));
listaEdificios.add(new Edificacion(3, 435.0, "Polideportivo"));
listaEdificios.add(new Edificacion(800.0, 8, "Edificio de Oficinas"));
listaEdificios.add(new Edificacion(500.0,15, "Capacitacion"));
listaEdificios.add(new Edificacion(350.0, 0, "Residencias"));
Iterator<Edificacion> it = listaEdificios.iterator();
Edificacion tmpEdificacion;
while(it.hasNext()){
tmpEdificacion = it.next();
System.out.println("Analizando edificación: ");
if(tmpEdificacion.getTipoDeInstalacion() != 0) {
System.out.print("Instalacion Deportiva ");
}else {
System.out.print("Edificio de " + tmpEdificacion.getNumeroDeOficinas() + " Oficinas, ");
}
System.out.println("Tiene una superficio de " + tmpEdificacion.getSuperficieEdificio() + " m2 y se identifica como " + tmpEdificacion.getNombreInstalacion());
}
}
}