Todas as outras que estendem tem que chamá-los.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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?