JavaPOOintermediario

super()

Em projetos reais com herança, cada classe costuma ter seus próprios atributos de inicialização obrigatória. Usar super() no construtor da subclasse evita repetir lógica do construtor pai e garante que os campos herdados sejam configurados corretamente antes de qualquer código específico do filho. Sem super(), você teria que chamar setters ou expor campos protegidos, o que quebra o encapsulamento e dificulta a manutenção.

O PROBLEMA

Veiculo(marca,ano) e Carro estendendo com modelo. Use super().

EXEMPLO

Carro("Toyota",2022,"Corolla").modelo → Corolla

SOBRE O CONCEITO

O super() chama o construtor da classe pai e deve ser a primeira instrução dentro do construtor da subclasse. Se você colocar qualquer outro comando antes (como this.modelo = modelo;), o compilador acusa erro. Isso acontece porque o Java precisa garantir que a parte da superclasse esteja completamente construída antes de qualquer operação da subclasse. No erro comum, o aluno escreve algo como super(marca, ano); depois de já ter atribuído modelo, o que viola essa regra. Sempre que uma superclasse não tiver construtor padrão (sem argumentos), é obrigatório usar super(...) com os parâmetros adequados – caso contrário, o compilador tenta inserir um super() implícito que não existe, gerando erro.

RESOLUÇÃO

Mais exercícios de POO

JAP004 · BásicoMétodo com retornoJAP005 · BásicoMúltiplos objetosJAP011 · IntermediárioHerança simplesJAP002 · BásicoConstrutor
Ver todos os exercícios de Java