1
resposta

AGORA É COM VOCÊ

Classe Titulo: java Copiar Editar public class Titulo { private String nome; private int duracaoEmMinutos;

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

public String getNome() {
    return nome;
}

public int getDuracaoEmMinutos() {
    return duracaoEmMinutos;
}

public void exibeFichaTecnica() {
    System.out.println("Nome: " + nome);
    System.out.println("Duração: " + duracaoEmMinutos + " minutos");
}

} Classe Serie (herda de Titulo): java Copiar Editar public class Serie extends Titulo { private int numeroDeEpisodios;

public Serie(String nome, int duracaoEmMinutos, int numeroDeEpisodios) {
    super(nome, duracaoEmMinutos);  // Chama o construtor da classe pai (Titulo)
    this.numeroDeEpisodios = numeroDeEpisodios;
}

@Override
public void exibeFichaTecnica() {
    super.exibeFichaTecnica();  // Exibe a ficha técnica da classe pai
    System.out.println("Número de Episódios: " + numeroDeEpisodios);
}

public int getNumeroDeEpisodios() {
    return numeroDeEpisodios;
}

} Classe CalculadoraDeTempo (polimorfismo): java Copiar Editar public class CalculadoraDeTempo {

public int calculaTempoTotal(Titulo[] titulos) {
    int tempoTotal = 0;
    
    // Aqui, demonstramos o polimorfismo, pois podemos passar objetos Titulo ou Serie
    for (Titulo titulo : titulos) {
        tempoTotal += titulo.getDuracaoEmMinutos();
    }
    
    return tempoTotal;
}

} Classe Main (para testar as classes): java Copiar Editar public class Main { public static void main(String[] args) { // Criando instâncias de Titulo e Serie Titulo filme = new Titulo("Filme Genérico", 120); Serie serie = new Serie("Série Exemplar", 40, 10);

    // Exibindo informações dos objetos
    filme.exibeFichaTecnica();
    System.out.println("-------------------");
    serie.exibeFichaTecnica();

    // Calculando o tempo total utilizando polimorfismo
    Titulo[] titulos = {filme, serie};
    CalculadoraDeTempo calculadora = new CalculadoraDeTempo();
    int tempoTotal = calculadora.calculaTempoTotal(titulos);
    System.out.println("Tempo total de todos os títulos: " + tempoTotal + " minutos");
}

} Explicação do código: Herança:

A classe Serie herda da classe Titulo, pois uma série é um tipo específico de título. Ou seja, a Serie herda os atributos nome e duracaoEmMinutos da classe Titulo, e ela pode adicionar um novo atributo numeroDeEpisodios. Além disso, a classe Serie sobrescreve o método exibeFichaTecnica da classe Titulo para incluir informações sobre o número de episódios.

Polimorfismo:

O método calculaTempoTotal da classe CalculadoraDeTempo recebe um array de objetos Titulo. Mesmo que o array contenha objetos da classe Titulo e da classe Serie, o método pode acessar o getDuracaoEmMinutos() de qualquer objeto, seja ele um Titulo ou uma Serie. Isso ocorre porque a classe Serie herda de Titulo e garante que todos os objetos da hierarquia de herança (como Serie) terão o método getDuracaoEmMinutos.

1 resposta

Oi Camila! Tudo bem?

Dei uma olhada no seu código e ele está bem organizado e condizente com o que foi passado pelo instrutor, e isso mostra o seu comprometimento com o curso.

Caso surjam quaisquer dúvidas eu estarei à sua disposição.

Abraços e bons estudos!