En este caso, si el objeto "miPelicula" es de tipo clase: Pelicula, y el objeto de tipo clase: filtroRecomendacion con metodo filtro espera el tipo de dato en el parametro clasificable, eso quiere decir que "miPelicula" tiene dualidad de tipo de dato? es decir que es de tipo clase pelicula y a la vez de tipo interfaz clasificable?
public class Principal
{
public static void main(String[] args)
{
Pelicula miPelicula = new Pelicula();
miPelicula.setNombre("Super-Mario-Bros");
miPelicula.setFechaLanzamiento(2023);
miPelicula.setDuracionEnMinutos(130);
miPelicula.setIncluidoEnElPlan(true);
miPelicula.muestraFichaTecnica();
FiltroRecomendacion filtroRecomendacion = new FiltroRecomendacion();
filtroRecomendacion.filtro(miPelicula);
}
}
clase FiltroRecomendacion
public class FiltroRecomendacion
{
public void filtro(Clasificable clasificable)
{
if(clasificable.getClasificable() >= 3)
{
System.out.println("Muy bien evaluado en el momento");
} else if (clasificable.getClasificable() >= 2 || clasificable.getClasificable() <= 3 )
{
System.out.println("Popular en el momento");
}
else
{
System.out.println("Colocalo en tu vista para verlo despues");
}
}
}
clase Pelicula
public class Pelicula extends Titulo implements Clasificable
{
private String director;
public String getDirector() {
return director;
}
public void setDirector(String director) {
this.director = director;
}
@Override
public int getClasificable() {
return (int) (calculaMedia() / 2);
}
}