Autor Tema: Aprender Java desde cero,Para que sirven las interfaces, CU00697B  (Leído 2468 veces)

camoay

  • Sin experiencia
  • *
  • APR2.COM
  • Mensajes: 44
    • Ver Perfil
Buenas noches, aquí les dejo mi ejercicio:

Interface InstalacionDeportiva:
Código: [Seleccionar]
package aprenderaprogramar.java.iniciacion.clase97;

public interface InstalacionDeportiva {
public int getTipoInstalacion();
}// fin interface

Interface Edificio:
Código: [Seleccionar]
package aprenderaprogramar.java.iniciacion.clase97;

public interface Edificio {
double getSuperficieEdificio();
}// fin interface

Clase Polideportivo:
Código: [Seleccionar]
package aprenderaprogramar.java.iniciacion.clase97;

public class Polideportivo implements InstalacionDeportiva,Edificio {
private String nombre;
private int tipoDeInstalacion;
private double superficieEdificio;

// constructores
public Polideportivo() { nombre =""; tipoDeInstalacion = 0; superficieEdificio = 0;}
public Polideportivo(String nombre,int tipoDeInstalacion,double superficieEdificio) {
this.nombre = nombre;
this.tipoDeInstalacion = tipoDeInstalacion;
this.superficieEdificio = superficieEdificio;
}

// métodos
// getters and setters
public String getNombre() { return nombre; }
public void setNombre(String nombre) { this.nombre = nombre; }
public int getTipoInstalacion(){ return tipoDeInstalacion; }// método implementado del interface InstalacionDeportiva
public void setTipoDeInstalacion(int tipoDeInstalacion) { this.tipoDeInstalacion = tipoDeInstalacion; }
public double getSuperficieEdificio(){ return superficieEdificio;  }// método implementado del interface Edificio
public void setSuperficieEdificio(double superficieEdificio) { this.superficieEdificio = superficieEdificio; }
// otros métodos
public String toString(){
return "Nombre: "+nombre+" , Tipo de Instalación: "+tipoDeInstalacion+" , Superficie del Edificio: "+superficieEdificio+" m²."; }
} // fin de clase

Clase EdificioDeOficinas:
Código: [Seleccionar]
package aprenderaprogramar.java.iniciacion.clase97;

public class EdificioDeOficinas implements Edificio{
private int numeroDeOficinas;
private double superficieEdificio;

// constructores
EdificioDeOficinas(){ numeroDeOficinas = 0; superficieEdificio = 0; }
EdificioDeOficinas(int numeroDeOficinas,double superficieEdificio){
this.numeroDeOficinas = numeroDeOficinas;
this.superficieEdificio = superficieEdificio; }

// métodos
// getters and setters
public double getSuperficieEdificio(){return superficieEdificio;}// método implementado del interface Edificio
public void setSuperficieEdificio(double superficieEdificio) { this.superficieEdificio = superficieEdificio; }
public int getNumeroDeOficinas() { return numeroDeOficinas; }
public void setNumeroDeOficinas(int numeroDeOficinas) { this.numeroDeOficinas = numeroDeOficinas; }
// otros métodos
public String toString(){
return "Número de oficinas: "+numeroDeOficinas+" , Superficio del Edificio: "+superficieEdificio+" m²."; }
}// fin de clase

Clase Test:
Código: [Seleccionar]
package aprenderaprogramar.java.iniciacion.clase97;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

public class Test {

public static void main(String[] args) {
// creo los objetos del arrayList
Edificio poli1 = new Polideportivo("Pancho Camurria", 4, 12000);
Edificio poli2 = new Polideportivo("La Hamburguesa", 3, 15000);
Edificio poli3 = new Polideportivo("Polideportivo Municipal S/C de Tenerife",1 , 60000);
Edificio oficinas1 = new EdificioDeOficinas(10, 2000);
Edificio oficinas2 = new EdificioDeOficinas(20, 3000);
// creo el ArrayList y añado los objetos creados
List <Edificio> misEdificios = new ArrayList<Edificio>();
misEdificios.add(poli1);misEdificios.add(poli2);misEdificios.add(poli3);misEdificios.add(oficinas1);misEdificios.add(oficinas2);
// listo todos los objetos con sus datos
Iterator <Edificio> it = misEdificios.iterator();
System.out.println("Los Edificios de la Lista son: \n" );
while(it.hasNext()){
Edificio tmp = it.next();
if(tmp instanceof Polideportivo)
System.out.print("Polideportivo -> ");
else
System.out.print("Edificio de oficinas -> ");
System.out.println(tmp.toString());
}// fin while
}// fin método main
}// fin de clase

La pregunta y su respuesta
Citar
¿Entre qué clases existe una relación que se asemeja a la herencia múltiple?
 Entre la clase Polideportivo y las Interfaces InstalacionDeportiva y Edificio.

Agradeceré sus correcciones o sugerencias.

ESOJ

  • Intermedio
  • ***
  • APR2.COM
  • Mensajes: 143
    • Ver Perfil

Alex Rodríguez

  • Moderador Global
  • Experto
  • *******
  • Mensajes: 2050
    • Ver Perfil
Re:Aprender Java desde cero,Para que sirven las interfaces, CU00697B
« Respuesta #2 en: 18 de Diciembre 2016, 12:32 »
Hola lo veo todo bien, es interesante ver en partes como Edificio poli1 = new Polideportivo("Pancho Camurria", 4, 12000);

cómo se utiliza el tipo estático Edificio (tipo de la interface) y luego se instancia usando el tipo dinámico Polideportivo, esto es un ejemplo de uso del polimorfismo.

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".