Autor Tema: Qué son y para qué sirven interface Java cómo simular herencia múltiple CU00697B  (Leído 2181 veces)

umadara

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 45
    • Ver Perfil
Buenas, os adjunto otro ejercicio, el CU00697B del tutorial práctico de programación en Java para principiantes.

Código: [Seleccionar]
import java.util.Iterator;
import java.util.ArrayList;

public class Test {
   
    public static void main (String [] args) {
       
        Polideportivo poli1 = new Polideportivo("descubierta", 1000, "europa");
       
        Polideportivo poli2 = new Polideportivo("cubierto", 500, "tierno galvan");
       
        Polideportivo poli3 = new Polideportivo("cubierto", 450, "san pedro");
       
        EdificioOficinas edi1 = new EdificioOficinas(2500, 100);
       
        EdificioOficinas edi2 = new EdificioOficinas(2000, 95);
       
        ArrayList<Edificio> listaEdificios = new ArrayList<Edificio>();
       
        listaEdificios.add(poli1);
       
        listaEdificios.add(poli2);
       
        listaEdificios.add(poli3);
       
        listaEdificios.add(edi1);
       
        listaEdificios.add(edi2);
       
        Iterator<Edificio> edificio = listaEdificios.iterator();
       
        Edificio tmpEdificio;
       
        while (edificio.hasNext()) {
           
            tmpEdificio = edificio.next();
           
            tmpEdificio.mostrar();
       
        }
    }
}

Código: [Seleccionar]
public interface InstalacionDeportiva
{
 
    String getTipoInstalacion();

}

Código: [Seleccionar]
public interface Edificio
{

    double getSuperficieEdificio();
   
    void mostrar();
   
}

Código: [Seleccionar]

public class Polideportivo implements InstalacionDeportiva, Edificio
{
   
    String nombreEdificio;
   
    double superficieEdificio;
   
    String tipoInstalacion;
   
    public Polideportivo (String tipoInstalacion, double superficieEdificio, String nombreEdificio) {
       
        this.tipoInstalacion = tipoInstalacion;
       
        this.superficieEdificio = superficieEdificio;
       
        this.nombreEdificio = nombreEdificio;
   
    }
   
    public void tipoInstalacion (String tipoInstalacion) {
       
        this.tipoInstalacion = tipoInstalacion;
   
    }
   
    public void nombreEdificio ( String nombreEdificio) {
       
        this.nombreEdificio = nombreEdificio;
   
    }
   
    public void superficieEdificio(double superficieEdificio) {
       
        this.superficieEdificio = superficieEdificio;
   
    }
   
    public String getNombre() {return nombreEdificio;}
   
    public String getTipoInstalacion() {return tipoInstalacion;}
   
    public double getSuperficieEdificio() { return superficieEdificio;}
   
    public void mostrar() {
       
        System.out.println ("El nombre del edificio es " + getNombre() + " es una instalación " + getTipoInstalacion() + " la superficie del edificio es de " + getSuperficieEdificio() + "m2");
   
    }
    }


Código: [Seleccionar]

public class EdificioOficinas implements Edificio
{
    double superficieEdificio;
   
    int numeroOficinas;
   
    public EdificioOficinas (double superficieEdificio, int numeroOficinas) {
       
        this.superficieEdificio = superficieEdificio;
       
        this.numeroOficinas = numeroOficinas;
   
    }
   
    public void superficieEdificio (double superficieEdificio) {
       
        this.superficieEdificio= superficieEdificio;
   
    }
   
    public void numeroOficinas (int numeroOficinas) {
       
        this.numeroOficinas = numeroOficinas;
   
    }
   
    public double getSuperficieEdificio() {return superficieEdificio;}
   
    public int getNumeroOficinas() {return numeroOficinas;}
   
    public void mostrar() {
       
        System.out.println ("la superficie del edificio es de " + getSuperficieEdificio() +"m2" + " el edificio se compone de " + getNumeroOficinas() + " oficinas");
   
    }

}

En cuanto a la pregunta propuesta, decir que se podría considerar que polideportivo "tiene herencia múltiple" ya que hereda de las 2 interfaces mientras que edificio de oficinas tan solo lo hace de una de ellas.

Sin más, un saludo y agradecer vuestra colaboración de antemano.
« Última modificación: 01 de Agosto 2016, 21:10 por Alex Rodríguez »

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Hola umadara en el ejercicio tendríamos estos comentarios:

En la interface Edificio has incluido void mostrar(); pero esto no lo pedía el ejercicio.

A estas alturas del curso no deberías usar public void mostrar() sino el método toString que ya ha sido explicado en entregas anteriores y utilizarlo para obtener los resultados deseados.

Saludos

 

Sobre la educación, sólo puedo decir que es el tema más importante en el que nosotros, como pueblo, debemos involucrarnos.

Abraham Lincoln (1808-1865) Presidente estadounidense.

aprenderaprogramar.com: Desde 2006 comprometidos con la didáctica y divulgación de la programación

Preguntas y respuestas

¿Cómo establecer o cambiar la imagen asociada (avatar) de usuario?
  1. Inicia sesión con tu nombre de usuario y contraseña.
  2. Pulsa en perfil --> perfil del foro
  3. Elige la imagen personalizada que quieras usar. Puedes escogerla de una galería de imágenes o subirla desde tu ordenador.
  4. En la parte final de la página pulsa el botón "cambiar perfil".