Uma pergunta, eu posso fazer um construtor na classe mãe e fazer com que todas as instancias e filhos dessa classe sigam um padrão feito pelo construtor da mãe?
Uma pergunta, eu posso fazer um construtor na classe mãe e fazer com que todas as instancias e filhos dessa classe sigam um padrão feito pelo construtor da mãe?
Oii, João! Como vai?
Agradeço por compartilhar sua dúvida com a comunidade Alura.
A resposta curta é: sim, você pode definir um padrão no construtor da classe mãe, mas é importante entender como isso funciona em Java.
1. Construtores não são herdados:
Em Java, construtores não são herdados pelas classes filhas.
Ou seja, quando você cria um construtor na classe mãe, a classe filha não passa a ter esse construtor automaticamente.
Porém, isso não significa que o padrão da classe mãe seja ignorado.
2. O construtor da mãe pode (e deve) ser chamado:
Toda vez que um objeto de uma classe filha é criado, o construtor da classe mãe é executado antes do construtor da filha.
Isso acontece de duas formas:
super(...), quando a classe mãe exige parâmetrosExemplo simples:
public class Titulo {
private String nome;
public Titulo(String nome) {
this.nome = nome;
}
}
Agora uma classe filha:
public class Filme extends Titulo {
public Filme(String nome) {
super(nome);
}
}
Aqui acontece algo importante:
Filme, é obrigatório passar um nomeTitulo) 3. Isso garante um padrão para todas as subclasses:
Se a classe mãe não tiver construtor vazio, todas as classes filhas serão obrigadas a chamar o construtor dela corretamente.
Isso é muito usado para:
No contexto do curso, faz muito sentido:
Titulo precisa de um nomeFilme e toda Serie também precisamRegra importante para guardar:
Se a classe mãe tem apenas construtores com parâmetros, então:
super(...)Isso é o Java te protegendo de criar objetos inválidos.
Você não “força” os filhos a usar o construtor da mãe por herança direta, mas define o padrão exigindo que ele seja chamado.
É exatamente assim que garantimos consistência e boas práticas em sistemas orientados a objetos.
Muito obrigado, Lorena está muito mais claro agora