Opa, blz?
Cara, você deve chamar o construtor da super classe na classe filha. É esse o ponto ..
Quando você cria um objeto de uma classe filha, você pode acessar os métodos da super classe diretamente, exemplo:
public class Funcionario {
//atributos omitidos
Funcionario(String nome, int idade){
this.nome = nome;
this.idade = idade;
}
//getters e setters omitidos.
}
public class Gerente extends Funcionario{
//atributos omitidos
//getters e setters omitidos
public double getBonificacao(){
return salario * 0.2;
}
}
public class Teste{
public static void main(String[] args) {
Gerente g = new Gerente();
g.setNome("João"); //acessa o método herdado
g.setIdade(35);
}
}
Na classe Teste não é possível fazer com que a classe Gerente use o construtor de Funcionario por meio de herança. É necessário chamá-lo na classe Gerente, dessa forma por exemplo:
public class Gerente extends Funcionario{
//atributos omitidos
Gerente(String nome, int idade){
super(nome, idade); //chamando o construtor da super classe (classe pai)
}
//getters e setters omitidos
public double getBonificacao(){
return salario * 0.2;
}
}
Assim será possível criar um objeto Gerente dessa forma:
public class Teste{
public static void main(String[] args) {
Gerente g = new Gerente("João", 35);
}
}