package polimorfismo_herencia;
//2-Clase Película:
//La clase Película hereda de Título y añade el atributo director:
public class Pelicula extends Titulo {
private String director;
public String getDirector() {
return director;
}
public void setDirector(String director) {
this.director = director;
}
}
package polimorfismo_herencia;
//Clase Título:
//Crea una nueva clase llamada Título
public class Titulo {
private String nombre;
private int fechaDeLanzamiento;
private int duracionEnMinutos;
private boolean incluidoEnElPlan;
private double sumaDeLasEvaluaciones;
private int totalDelasEvaluaciones;
public String getNombre() {
return nombre;
}
public int getFechaDeLanzamiento() {
return fechaDeLanzamiento;
}
public int getDuracionEnMinutos() {
return duracionEnMinutos;
}
public boolean isIncluidoEnElPlan() {
return incluidoEnElPlan;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public void setFechaDeLanzamiento(int fechaDeLanzamiento) {
this.fechaDeLanzamiento = fechaDeLanzamiento;
}
public void setDuracionEnMinutos(int duracionEnMinutos) {
this.duracionEnMinutos = duracionEnMinutos;
}
public void setIncluidoEnElPlan(boolean incluidoEnElPlan) {
this.incluidoEnElPlan = incluidoEnElPlan;
}
public int getTotalDelasEvaluaciones(){
return totalDelasEvaluaciones;
}
public void muestraFichaTecnica(){
System.out.println("El nombre es: " + this.nombre);
System.out.println("Su fecha de lanzamiento es: " + this.fechaDeLanzamiento);
System.out.println("Duración en minutos: "+ getDuracionEnMinutos());
}
public void evalua(double nota){
sumaDeLasEvaluaciones += nota;
totalDelasEvaluaciones++;
}
public double calculaMedia(){
return sumaDeLasEvaluaciones / totalDelasEvaluaciones;
}
}
package polimorfismo_herencia;
//3-Clase Serie:
//Crea la clase Serie, que también hereda de Título:
public class Serie extends Titulo {
int temporadas;
int episodiosPorTemporada;
int minutosPorEpisodio;
public int getTemporadas() {
return temporadas;
}
public void setTemporadas(int temporadas) {
this.temporadas = temporadas;
}
public int getEpisodiosPorTemporada() {
return episodiosPorTemporada;
}
public void setEpisodiosPorTemporada(int episodiosPorTemporada) {
this.episodiosPorTemporada = episodiosPorTemporada;
}
public int getMinutosPorEpisodio() {
return minutosPorEpisodio;
}
public void setMinutosPorEpisodio(int minutosPorEpisodio) {
this.minutosPorEpisodio = minutosPorEpisodio;
}
@Override
public int getDuracionEnMinutos() {
return temporadas * episodiosPorTemporada * minutosPorEpisodio;
}
}
package polimorfismo_herencia;
//4-Clase CalculadoraDeTiempo:
//Crea la clase CalculadoraDeTiempo
public class CalculadoraDeTiempo {
private int tiempoTotal;
public int getTiempoTotal() {
return tiempoTotal;
}
public void incluye(Titulo titulo){
this.tiempoTotal += titulo.getDuracionEnMinutos();
}
}
//
package polimorfismo_herencia;
public class Principal {
public static void main(String[] args) {
Pelicula peliUno = new Pelicula();
peliUno.setNombre("Encanto");
peliUno.setFechaDeLanzamiento(2021);
peliUno.setDuracionEnMinutos(120);
peliUno.setIncluidoEnElPlan(true);
peliUno.muestraFichaTecnica();
peliUno.evalua(10);
peliUno.evalua(10);
peliUno.evalua(7.8);
System.out.println(peliUno.getTotalDelasEvaluaciones());
System.out.println("Media de evaluaciones de la película: " + peliUno.calculaMedia());
Serie casaDragon = new Serie();
casaDragon.setNombre("La casa del dragón");
casaDragon.setFechaDeLanzamiento(2022);
casaDragon.setTemporadas(1);
casaDragon.setMinutosPorEpisodio(50);
casaDragon.setEpisodiosPorTemporada(10);
casaDragon.muestraFichaTecnica();
System.out.println(casaDragon.getDuracionEnMinutos());
CalculadoraDeTiempo calculadora = new CalculadoraDeTiempo();
calculadora.incluye(peliUno);
calculadora.incluye(casaDragon);
System.out.println(calculadora.getTiempoTotal());
}
}