Em aulas anteriores vimos a utilização da anotação override, cuja a finalidade é garantir que a classe-filha esteja especificando a funcionalidade de um método existente em sua superclasse. Se a classe-filha não utiliza o @Override acima de seu método, então este método é um método própria da classe, e não o método da superclasse, certo?
Pois bem, nessa aula fomos introduzidos ao conceito de método abstrato:
//não pode instanciar essa classe, pq é abstrata
public abstract class Funcionario {
        private String nome;
        private String cpf;
        private double salario;
        //metodo sem corpo, nao ha implementacao
        public abstract double getBonificacao(); //ESSE AQUI
        public String getNome() {
                return nome;
        }
//Código omitidoPeguemos a classe-filha a seguir como exemplo:
public class Designer extends Funcionario {
    public double getBonificacao() {
        System.out.println("Chamando o método de bonificacao do Designer");
        return 200;
    }
}Minha dúvida é: na classe-filha não temos a anotação override que define que a classe-filha está especificando o método getBonificacao(). Por que nesse caso não precisamos fazer o @Override?
 
             
             
            