Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Estou com dúvida no curso de Java e Orientação a Objetos, no exercício 7 do capítulo Classes Abstratas.

Todas as outras que estendem tem que chamá-los.

2 respostas

Não entendi sua duvida

solução!

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?