Todas as outras que estendem tem que chamá-los.
Todas as outras que estendem tem que chamá-los.
Não entendi sua duvida
Como o Luiz disse, a sua dúvida ficou complicada de entender, pois está simples demais. Precisamos de mais detalhes.
Mas, já adiantando a explicação, o que você disse é que todas as classes que extendem a classe abstrata são obrigadas a implementar o método. Isso está correto, mas não foi essa a pergunta da questão.
A questão é: a classe Funcionário sendo abstrata e tendo o método getBonificacao que também é abstrato, você pode fazer uma chamada a ele em outro método da classe que não é abstrato? Veja o código:
public abstract class Funcionario {
// atributos diversos
public abstract double getBonificacao();
public void mostra() {
// outros system out println
System.out.println("Bonificação: " + this.getBonificacao());
}
}
No método mostra(), eu posso usar this.getBonificacao? Ele é abstrato na classe funcionário. O código do método está na classe filha, sobrescrito.
A resposta é: sim. Você pode usar, pois tudo se resume a referência ao objeto. Quando usamos this, ele possui a referência para o objeto instanciado na memória e, a partir dele, é possível chegar ao método sobrescrito.
Ficou mais claro?