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

Anotação Override

No meu caso, eu não coloquei a anotação "Override" e mesmo assim ele está sobrescrevendo o método da classe mãe, então não consegui validar a função dessa anotação... Alguém pode me auxilar? Muito obrigada.

Classe mãe:
 void saca(double valor) {

           if (valor <= this.saldo) {

               this.saldo -= valor;
              // System.out.println("Saque realizado");
           }
          else
             System.out.println ("Saldo insuficiente, operação não realizada");


Classe filha:

 void saca(double valor) {

         double saqueCC = valor + 0.20;

           if (valor <= this.getSaldo()) {
               super.saca(saqueCC);
               System.out.println("Saque realizado");
           }
          else
             System.out.println ("Saldo insuficiente, operação não realizada");
}
2 respostas
solução!

E aí, Samantha!

A anotação @Override serve para garantir que a sobrescrita será feita, mesmo seu uso não sendo "necessariamente" obrigatório. Explico.

O código abaixo, como você mesma notou, funciona.

Classe mãe:
 void saca(double valor) {
    //código
}
Classe filha:
 void saca(double valor) {
    //código
}

Mas se você alterar o método da classe mãe para saque(), por exemplo, o compilador passa a entender o saca() da classe filha como um método qualquer, sem sobrescrita:

Classe mãe:
 void saque(double valor) {
    //código
}
Classe filha:
 void saca(double valor) {
    //código
}

Ao usar a anotação @Override, se você futuramente alterar o método da classe mãe para saque(), o código vai dar um erro de compilação, dizendo que a tal sobrescrita não existe.

Classe mãe:
 void saque(double valor) {
    //código
}

Isso aqui vai dar erro, pois não existe mais saca():

Classe filha:
@Override
 void saca(double valor) {
    //código
}

O erro exibido será ClasseFilha must override or implement a supertype method. Dessa maneira você será sempre impelida a fazer a sobrescrita corretamente, evitando assim que o método da classe filha acabe sem querer se tornando um método qualquer.

Espero ter ajudado, bons estudos!

Muito obrigada!!!