Segundo o vídeo, quando chamamos um método que foi reescrito na classe filha, esse método busca o mais específico, mas fazendo um teste com o método "saca", na classe ContaCorrente, ele acessa tanto o "saca" da classe Conta como o da classe ContaCorrente, não entendi a razão do mesmo, usei o system out para confirmar isso.
saca na clase Conta
public boolean saca(double valor) {
if (this.saldo >= valor) {
this.saldo -= valor;
System.out.println("saca conta");
return true;
} else {
return false;
}
}
saca na classe ContaCorrente
@Override
public boolean saca(double valor) {
System.out.println("saca cc");
return super.saca(valor + 0.2);
}
código no main
public static void main(String[] args) {
ContaCorrente cc = new ContaCorrente(111, 111);
cc.deposita(100);
ContaPoupanca cp = new ContaPoupanca(222, 222);
cc.transfere(50, cp);
}
Resultado no console
saca cc
saca conta