1
resposta

Métodos Abstratos

Queridas e queridos,

Gostaria de saber se a vantagem da utilização dos métodos abstratos seria por conta da obrigatoriedade da declaração destes métodos herdados nas classes filhas?

O sentido da minha pergunta é porque a partir do caso proposto na aula 5.3 - Métodos Abstratos, é possível chegar numa mesma via utilizando o @Override.

Seguem exemplos:

Exemplo da Aula - Classe Mãe

public abstract class Funcionario {

        private String nome;
        private String cpf;
        private double salario;

        public abstract double getBonificacao();

        public String getNome() {
                return nome;
        }

Classe Filha

public class Designer extends Funcionario {

    public double getBonificacao() {
        System.out.println("Chamando o método de bonificacao do Designer");
        return 200;
    }
}

Utilizando @Override - Classe Mãe

public abstract class Funcionario {
    private String nome;
    private String cpf;
    private double salario;

    public double getBonification(){
        return this.salario * 0.1;
    }
}    

Classe Filha

public class Designer extends Funcionario {
    public Designer(String nome, String cpf) {
        super(nome, cpf);
    }

    @Override
    public double getBonification() {
        return 200;
    }
}

Desde já agradeço a atenção e paciência de instrutores(as) e da comunidade!

Abração!

1 resposta

Sim, acabei de realizar o curso onde são explicados esses conceitos, e pelo que entendi, permite que você crie a assinatura de um método, sem necessariamente ter que criar uma implementação do mesmo na classe mãe, além de, obrigatoriamente, garantir a implementação nas classes filhas.