Bueno dias
Cordial saludo, basicamente lo hice paso a paso para entender cada parte del codigo e implemente una interfaz que se llama recomendaciones, genere el metodo getRecomendacion(), el cual utilizo y sobreescribo en cancion y en Podcast sin embargo me causa mucha confusion al momento de llamar en el code principal estos metodos, en este caso lo imprimo solamente y funciona me da la recomendacion como si lo hiciera igual que favoritos en el ejemplo dado, pero no entiendo en que casos crear una variable de tipo interfaz, o crear un objeto de tipo interfaz, Bueno no es muy claro, es que me gustaria entender para optimizar mejor lo de la Recomendación...si pueden enviarme ejemplos agradeceria para esos 2 casos.. Ahora lo que entiendo.... Creo que la interfaz cuando se usa para declarar una variable de entrada de tipo interfaz en un método X, es para poder traer y evaluar el método que tiene la interfaz y a su vez poder llamar ese método X desde la clase principal y pasarle mi objeto ya sea canción o ya sea podcast ... ósea entiendo que son como puentes para conectar métodos con otros métodos aparte y poder tomar decisiones
como en el ejemplo de filtra en los TITULOS:
public void filtra(Clasificacion clasificacion){ // se crea variable de tipo Interfaz
if (clasificacion.getclasificacion()>=4) { // se evalúa el método de la interfaz
System.out.println("Muy bien evaluado en el momento");
------------Main--------------
filtroRecomendacion.filtra(miPelicula); // se le pasa el objeto al método filtra
------------------------IGUAL DEJO EL CODE DE LO QUE HICE DE RECOMIENDA-------------------------------
------------------LA INTERFAZ----------
package com.aluracursos.radionn.calculos; public interface Recomendacion { String getRecomendacion(); }
---------------LA IMPLEMENTACION EN LAS CLASES CANCION Y PODCAST----------------
@Override public String getRecomendacion() { if (getTotalMeGusta() >= 5000) { return "Recomendado"; } else { return "No recomendado"; } } @Override // sobreescribo el metodo getrecomendacion traido de la interfaz Recomendacion public String getRecomendacion() { if (getTotalReproducciones() >= 2000) { return "Recomendado"; } else { return "No recomendado"; } } -------------MUESTRA DESDE EL MAIN -----------------------
System.out.println(micancion.getRecomendacion() + " --> " + micancion.getTitulo() ); System.out.println(miPodcast.getRecomendacion() + " --> " + miPodcast.getTitulo() );
------------RESULTADO----------
El total de reproducciones es: 2000 la clasificaciones es: 4, Trooper No es tan favorito la clasificaciones es: 9, Alameda Es uno de los favoritos No recomendado --> Trooper Recomendado --> Alameda
Gracias