1
resposta

Faça como eu fiz: aplicando polimorfismo com herança

Classe Titulo.java java Copiar Editar public class Titulo { private String nome; private int ano; private int duracao; // em minutos

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

public int getDuracao() {
    return duracao;
}

public String getNome() {
    return nome;
}

public String toString() {
    return nome + " (" + ano + ") - " + duracao + " min";
}

} Classe Serie.java java Copiar Editar public class Serie extends Titulo { private int temporadas; private int episodiosPorTemporada; private int duracaoPorEpisodio;

public Serie(String nome, int ano, int temporadas, int episodiosPorTemporada, int duracaoPorEpisodio) {
    super(nome, ano, 0); // A duração será calculada
    this.temporadas = temporadas;
    this.episodiosPorTemporada = episodiosPorTemporada;
    this.duracaoPorEpisodio = duracaoPorEpisodio;
}

@Override
public int getDuracao() {
    return temporadas * episodiosPorTemporada * duracaoPorEpisodio;
}

@Override
public String toString() {
    return getNome() + " - Série com " + temporadas + " temporadas";
}

} Classe CalculadoraDeTempo.java java Copiar Editar public class CalculadoraDeTempo { private int tempoTotal = 0;

public void inclui(Titulo titulo) {
    System.out.println("Adicionando: " + titulo);
    tempoTotal += titulo.getDuracao(); // Polimorfismo em ação
}

public int getTempoTotal() {
    return tempoTotal;
}

} Classe Main.java java Copiar Editar public class Main { public static void main(String[] args) { Titulo filme = new Titulo("A Origem", 2010, 148); Serie serie = new Serie("Stranger Things", 2016, 4, 8, 50);

    CalculadoraDeTempo calc = new CalculadoraDeTempo();
    calc.inclui(filme);
    calc.inclui(serie);

    System.out.println("\nTempo total assistido: " + calc.getTempoTotal() + " minutos");
}

}

1 resposta

Oi Gabrielly! Como vai?

A implementação está correta e deve funcionar como esperado. Quando você adiciona um Titulo ou uma Serie à CalculadoraDeTempo, ele calcula o tempo total corretamente, usando o polimorfismo para chamar o método getDuracao apropriado.

Bons estudos!