1
resposta

[Dúvida] Criar construtores nas subclasses?

Olá! Já que criou-se um construtor na classe Título, a IDE me obriga a implementa-lo também nas classes filhas. Por que isso não foi abordado no vídeo? Me equivoquei em algo?

1 resposta

Olá, Marcus.

Tudo bem?

Quando você define um construtor personalizado na classe pai (neste caso, Titulo), o construtor padrão (sem parâmetros) deixa de ser fornecido automaticamente. Portanto, todas as subclasses que herdam dessa classe pai precisam explicitamente chamar um dos construtores definidos na classe pai. Isso é necessário para garantir que a parte da classe pai seja corretamente inicializada.

Por exemplo, se você tem a classe Titulo com um construtor que aceita parâmetros, como:

public class Titulo {
    private String nome;
    private int ano;

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

E uma subclasse Filme, você precisa garantir que Filme chame o construtor da classe Titulo. Veja como fazer isso:

public class Filme extends Titulo {
    private String diretor;

    public Filme(String nome, int ano, String diretor) {
        super(nome, ano); // Chama o construtor da classe pai
        this.diretor = diretor;
    }
}

A chamada super(nome, ano) no construtor de Filme é essencial para que a parte da classe Titulo seja inicializada corretamente. Se você não fizer isso, o compilador Java reclamará, pois ele precisa garantir que todas as partes do objeto (incluindo as herdadas) sejam inicializadas.

Espero ter entendido e conseguido ajudar. Qualquer dúvida manda aqui. Bons estudos!