A continuación mi planteamiento al siguiente ejercicio... Me seria de ayuda que me corrigieran
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?
Interface Edificio
public interface Edificio {
double getSuperficieEdificio();
}
Interface InstalacionDeportiva
public interface InstalacionDeportiva {
String getTipoDeInstalacion();
}
Clase abstracta InstalacionDeportes
public abstract class InstalacionDeportes {
private double superficie;
public InstalacionDeportes(double superficie){
this.superficie = superficie;
}
public InstalacionDeportes(){
}
public void setSuperficie(double superficie){
this.superficie = superficie;
}
public double getSuperficie(){
return superficie;
}
abstract public void mostrarDatos();
}
Clase Polideportivo
public class Polideportivo extends InstalacionDeportes implements InstalacionDeportiva,Edificio {
private String nombre;
public Polideportivo(String nombre, double superficie){
super(superficie);
this.nombre = nombre;
}
public void setNombre(String nombre){
this.nombre = nombre;
}
public String getNombre(){
return nombre;
}
public String getTipoDeInstalacion(){
return nombre;
}
public double getSuperficieEdificio(){
return super.getSuperficie();
}
public void mostrarDatos(){
System.out.println("Polideportivo:\n"+("Nombre: "+nombre)+("\nSuperficie: ")+getSuperficieEdificio()+(" metros cuadrados"));
System.out.print("\n");
}
}
Clase oficinaDeportiva
public class OficinaDeportiva extends InstalacionDeportes implements Edificio{
private int numeroDeOficinas;
public OficinaDeportiva(int numeroDeOficinas){
this.numeroDeOficinas = numeroDeOficinas;
}
public void setNumeroDeOficinas(int oficinas){
this.numeroDeOficinas = oficinas;
}
public int getNumeroDeOficinas(){
return numeroDeOficinas;
}
public double getSuperficieEdificio(){
return super.getSuperficie();
}
public void mostrarDatos(){
System.out.println("Oficina Deportiva:\n"+("Numero de Oficinas: "+numeroDeOficinas));
System.out.print("\n");
}
}
Clase TestInstalacionesDeportivas
import java.util.*;/**
*
* @author baseuser
*/
public class TestInstalacionesDeportivas {
public static void main(String[]args){
List <InstalacionDeportes> miLista = new ArrayList <InstalacionDeportes>();
InstalacionDeportes poli1 = new Polideportivo("Venezuela",7522.5);
InstalacionDeportes poli2 = new Polideportivo("URBAN",7850.5);
InstalacionDeportes poli3 = new Polideportivo("Valle de la pascua",7880.5);
InstalacionDeportes ofi1 = new OficinaDeportiva(50);
InstalacionDeportes ofi2 = new OficinaDeportiva(98);
miLista.add(poli1);miLista.add(poli2);miLista.add(poli3);miLista.add(ofi1);miLista.add(ofi2);
Iterator <InstalacionDeportes> it = miLista.iterator();
InstalacionDeportes tmp;
System.out.println("LISTA DE INSTALACIONES DEPORTIVAS.........");
while(it.hasNext()){
tmp = it.next();
tmp.mostrarDatos();
}
}
}