Hola a todos !!! Paso a responder la pregunta y dejar el código del ejercicio. Desde ya muchas gracias.
Saludos,
Luis
EJERCICIO
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?
Rta: La clase Polideportivo implementa dos interfaces: InstalacionDeportiva y Edificio
Interface InstalacionDeportiva
/**
* Write a description of interface InstalacionDeportiva here.
*
* @author Luis
* @version CU00697B
*/
public interface InstalacionDeportiva
{
int getTipoDeInstalacion();
}
Interface Edificio
/**
* Write a description of interface Edificio here.
*
* @author Luis
* @version CU00697B
*/
public interface Edificio
{
double getSuperficieEdificio();
String toString();
}
Clase Polideportivo
/**
* Write a description of class Polideportivo here.
*
* @author Luis
* @version CU00697B
*/
public class Polideportivo implements Edificio, InstalacionDeportiva
{
// instance variables - replace the example below with your own
private int tipoDeInstalacion;
private double superficie;
private String nombreEstadio;
private int cantidadOficinas;
/**
* Constructor for objects of class Polideportivo
*/
public Polideportivo(int tipoDeInstalacion, double superficie, String nombreEstadio)
{
// initialise instance variables
this.tipoDeInstalacion = tipoDeInstalacion;
this.superficie = superficie;
this.nombreEstadio = nombreEstadio;
}
public Polideportivo()
{
// initialise instance variables
tipoDeInstalacion = 0;
superficie = 0;
nombreEstadio = "";
}
/**
* @param y a sample parameter for a method
* @return the sum of x and y
*/
public int getTipoDeInstalacion()
{
return tipoDeInstalacion;
}
public double getSuperficieEdificio()
{
return superficie;
}
public String toString(){
return "Polideportivo "+nombreEstadio+" del tipo "+tipoDeInstalacion+" y cuya superficie es "+superficie+" m2";
}
}
Clase EdificioOficinas
/**
* Write a description of class Polideportivo here.
*
* @author Luis
* @version CU00697B
*/
public class EdificioOficinas implements Edificio
{
// instance variables - replace the example below with your own
private double superficie;
private int cantidadOficinas;
/**
* Constructor for objects of class Polideportivo
*/
public EdificioOficinas(double superficie, int cantidadOficinas)
{
// initialise instance variables
this.superficie = superficie;
this.cantidadOficinas = cantidadOficinas;
}
public EdificioOficinas()
{
// initialise instance variables
superficie = 0;
cantidadOficinas = 0;
}
public double getSuperficieEdificio()
{
return superficie;
}
public String toString(){
return "Edificio de "+cantidadOficinas+" oficinas y cuya superficie es "+superficie+" m2";
}
}
Clase Test (main)
import java.util.Iterator;
import java.util.ArrayList;
public class Test {
public static void main (String [] args) {
ArrayList<Edificio> listaEdificios = new ArrayList<Edificio>();
Polideportivo p1 = new Polideportivo(1, 8000, "Colosseum Arena");
listaEdificios.add(p1);
Polideportivo p2 = new Polideportivo(2, 6500, "Polideportivo Nacional");
listaEdificios.add(p2);
Polideportivo p3 = new Polideportivo(3, 5450, "Stadium Luna Park");
listaEdificios.add(p3);
EdificioOficinas e1 = new EdificioOficinas(1000, 40);
listaEdificios.add(e1);
EdificioOficinas e2 = new EdificioOficinas(500, 20);
listaEdificios.add(e2);
Iterator<Edificio> edificio = listaEdificios.iterator();
Edificio tmp;
while (edificio.hasNext()) {
tmp = edificio.next();
System.out.println(tmp.toString());
}
}
}