141
Aprender a programar desde cero / Ejercicio interfaces java simular implementación herencia múltiple CU00697B
« en: 26 de Julio 2015, 22:28 »
otro mas,
Clase interface InstalacionDeportiva
Clase interface Edificio
Clase Polideportivo
Clase EdificioDeOficinas
Clase TestInterface2
y respondiendo a la pregunta ¿Entre qué clases existe una relación que se asemeja a la herencia múltiple?
Es en la clase Polideportivo.
por otro lado quería preguntar sobre esta parte del código de la clase TestInterface2.
si quito el .toString() sigue imprimiendo lo mismo por consola, ¿a que se debe?
Citar
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?
Clase interface InstalacionDeportiva
Código: [Seleccionar]
public interface InstalacionDeportiva{
int getTipoDeInstalacion();
}
Clase interface Edificio
Código: [Seleccionar]
public interface Edificio{
double getSuperficieEdificio();
}
Clase Polideportivo
Código: [Seleccionar]
public class Polideportivo implements InstalacionDeportiva, Edificio{
private String nombre;
private int tipoDeInstalacion;
private double superficie;
public Polideportivo(){
nombre = "";
tipoDeInstalacion = 0;
superficie = 0;
}
public Polideportivo(String nombre, int tipoDeInstalacion, double superficie){
this.nombre = nombre;
this.tipoDeInstalacion = tipoDeInstalacion;
this.superficie = superficie;
}
public void setNombre(String nombre){ this.nombre = nombre; }
public void setTipoDeInstalacion(int tipoDeInstalacion){ this.tipoDeInstalacion = tipoDeInstalacion; }
public void setSuperficie(double superficie){ this.superficie = superficie; }
public String getNombre(){ return nombre; }
public int getTipoDeInstalacion(){ return tipoDeInstalacion; }
public double getSuperficieEdificio(){ return superficie; }
public String toString(){
return "Edificio tipo Polideportivo.\nNombre del polideportivo: " + nombre + "\nTipo de instalación: "
+ tipoDeInstalacion + "\nSuperficie: " + superficie + "m2\n-------------------";
}
}
Clase EdificioDeOficinas
Código: [Seleccionar]
public class EdificioDeOficinas implements Edificio{
private int numOficinas;
private double superficie;
public EdificioDeOficinas(){
numOficinas = 0;
superficie = 0;
}
public EdificioDeOficinas(int numOficinas, double superficie){
this.numOficinas = numOficinas;
this.superficie = superficie;
}
public void setNumOficinas(int numOficinas){ this.numOficinas = numOficinas; }
public void setSuperficie(double superficie){ this.superficie = superficie; }
public int getNumOficinas(){ return numOficinas; }
public double getSuperficieEdificio(){ return superficie; }
public String toString(){
Integer valorNumOficinas = numOficinas;
Double valorSuperficie = superficie;
return "Edificio tipo Edificio de Oficinas.\nNumero de oficinas: " + numOficinas + "\nSuperficie: "
+ superficie + "m2\n-------------------";
}
}
Clase TestInterface2
Código: [Seleccionar]
import java.util.ArrayList;
import java.util.Iterator;
public class TestInterface2{
public static void main (String [] Args){
ArrayList<Edificio> listaEdificios = new ArrayList<Edificio>();
listaEdificios.add(new Polideportivo("RHY", 1, 1233.45));
listaEdificios.add(new Polideportivo("GJKL", 1, 45687.56));
listaEdificios.add(new Polideportivo("SDW", 1, 78988.56));
listaEdificios.add(new EdificioDeOficinas(44, 45778.22));
listaEdificios.add(new EdificioDeOficinas(136, 5889.78));
Iterator<Edificio> it = listaEdificios.iterator();
while (it.hasNext()){
System.out.println(it.next().toString());
}
}
}
y respondiendo a la pregunta ¿Entre qué clases existe una relación que se asemeja a la herencia múltiple?
Es en la clase Polideportivo.
por otro lado quería preguntar sobre esta parte del código de la clase TestInterface2.
Código: [Seleccionar]
while (it.hasNext()){
System.out.println(it.next().toString());
}
si quito el .toString() sigue imprimiendo lo mismo por consola, ¿a que se debe?