1
resposta

[Projeto] DESAFIO

import java.util.ArrayList;

class Titulo {
private String nome;
private int anoDeLancamento;

public Titulo(String nome, int anoDeLancamento) {
    this.nome = nome;
    this.anoDeLancamento = anoDeLancamento;
}

public String getNome() {
    return nome;
}

public int getAnoDeLancamento() {
    return anoDeLancamento;
}
}

class Filme extends Titulo {
private int duracaoEmMinutos;

public Filme(String nome, int anoDeLancamento, int duracaoEmMinutos) {
    super(nome, anoDeLancamento);
    this.duracaoEmMinutos = duracaoEmMinutos;
}

public int getDuracaoEmMinutos() {
    return duracaoEmMinutos;
   }
}

class Serie extends Titulo {
private int temporadas;

public Serie(String nome, int anoDeLancamento, int temporadas) {
    super(nome, anoDeLancamento);
    this.temporadas = temporadas;
}

public int getTemporadas() {
    return temporadas;
   }
}

public class Main {
public static void main(String[] args) {

    ArrayList<Titulo> listaDeTitulos = new ArrayList<>();

    listaDeTitulos.add(new Filme("Matrix", 1999, 136));
    listaDeTitulos.add(new Filme("Interestelar", 2014, 169));
    listaDeTitulos.add(new Serie("Breaking Bad", 2008, 5));

   //  foreach + instanceof + casting
    for (Titulo titulo : listaDeTitulos) {
        if (titulo instanceof Filme) {
            Filme filme = (Filme) titulo;

            System.out.println("Filme encontrado:");
            System.out.println("Nome: " + filme.getNome());
            System.out.println("Ano: " + filme.getAnoDeLancamento());
            System.out.println("Duração: " + filme.getDuracaoEmMinutos() + " minutos");
            System.out.println("_______________"}
    }
  }
}
1 resposta

Olá, Giulia, como vai?

Parabéns pela resolução do desafio. Seu código aplica corretamente os conceitos de polimorfismo ao gerenciar uma lista de referências do tipo pai enquanto identifica comportamentos específicos das classes filhas. O uso do loop foreach em conjunto com o operador instanceof garante que o casting seja realizado com segurança, evitando erros em tempo de execução ao tentar acessar métodos que existem apenas na classe Filme, como o getDuracaoEmMinutos.

Agradeço por compartilhar seu progresso conosco e continue praticando para consolidar esses fundamentos.

Alura Conte com o apoio da comunidade Alura na sua jornada. Abraços e bons estudos!