1
resposta

Declarando construtores

public 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;
    }

    public void exibeFichaTecnica() {
        System.out.println("Título: " + nome);
        System.out.println("Ano de lançamento: " + anoDeLancamento);
    }
}


public class Serie extends Titulo {

    public Serie(String nome, int anoDeLancamento) {
        super(nome, anoDeLancamento);
    }

    // Aqui você pode adicionar mais atributos e métodos no futuro
}


public interface Classificavel {
    int getClassificacao();
}


public class Filme extends Titulo implements Classificavel {

    public Filme(String nome, int anoDeLancamento) {
        super(nome, anoDeLancamento);
    }

    @Override
    public int getClassificacao() {
        return 10; // exemplo fixo
    }
}


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

        Filme filme = new Filme("Oppenheimer", 2023);
        Serie serie = new Serie("Stranger Things", 2016);

        filme.exibeFichaTecnica();
        System.out.println("Classificação: " + filme.getClassificacao());

        System.out.println();

        serie.exibeFichaTecnica();
    }
}


Título: Oppenheimer
Ano de lançamento: 2023
Classificação: 10

Título: Stranger Things
Ano de lançamento: 2016
1 resposta

Oi, Gabrielly! Como vai?

Agradeço por compartilhar seu código com a comunidade Alura.

Seu código mostra uma ótima organização com herança, construtores e interface. Gostei de como usou super() para reaproveitar a lógica do construtor da classe Titulo nas subclasses.

Uma dica interessante é sobrescrever o método toString(), que existe em todas as classes por padrão (pois vem da classe Object). Esse método define o que será exibido quando o objeto for impresso com System.out.println(objeto).


@Override
public String toString() {
    return "Título: " + nome + ", Ano: " + anoDeLancamento;
}

Assim, ao invés de chamar exibeFichaTecnica(), você pode apenas imprimir o objeto e já terá uma saída amigável. Exemplo: System.out.println(filme);.

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