0
respostas

Faça como eu fiz: foreach

import screenmatch.modelos.Filme;
import screenmatch.modelos.Serie;
import screenmatch.modelos.Tipo;

import java.util.ArrayList;

public class Principal {
    public static void main(String[] args) {
        Filme filme1 = new Filme("Interestelar", 2015, "Um grupo de exploradores viaja através de um buraco de minhoca em busca de um novo lar para a humanidade.", true,8.7, "Christopher Nolan",169);
        Filme filme2 = new Filme("Tropa de Elite", 2007, "Um capitão do BOPE tenta combater o tráfico de drogas no Rio de Janeiro.", true, 8.1, "José Padilha",115 );
        Serie serie1 = new Serie("Breaking Bad", 2008, "Um professor de química se torna um fabricante de metanfetamina após ser diagnosticado com câncer.", true, 9.5, 0, 5, 13);

        Filme f1 = new Filme("Cidade de Deus", 2002, 8.7);
        Filme f2 = new Filme("De Volta Para o Futuro" ,1985, 10.0);
        ArrayList <Tipo> listaFilmes = new ArrayList<>();

        listaFilmes.add(filme1);
        listaFilmes.add(filme2);
        listaFilmes.add(f1);
        listaFilmes.add(f2);
        listaFilmes.add(serie1);

//        System.out.println(listaFilmes);

        for (Tipo mostragem: listaFilmes) {
            System.out.println(mostragem);
            mostragem.mostrarAvaliacao();
        }
    }
}

Fiz dessa forma sem o instanceod, pois defini o método mostrar avaliação em tipo ao invés de filme.

public void mostrarAvaliacao(){
        if(getAvaliacao() == 10){
            System.out.println("    Nota Máxima, top!!!");
        }
    }

A saída foi essa:

Filme: Interestelar - 2015
Filme: Tropa de Elite - 2007
Filme: Cidade de Deus - 2002
Filme: De Volta Para o Futuro - 1985
    Nota Máxima, top!!!
Série: Breaking Bad - 2008
    Nota Máxima, top!!!

Process finished with exit code 0