No exercício da aula 5, o método deposita da classe Conta foi alterado para abstract. Na implementação deste método na classe filha ContaCorrente, foi orientado utilizar o saldo da super classe. No entanto, usando o this, funcionou da mesma forma, trazendo o mesmo resultado. Por que tem de ser o super?
public abstract class Conta {
// private double saldo = 100.0;
protected double saldo;
private int agencia;
private int numero;
private Cliente titular;
private static int total = 0; // static indica que a variável é da classe, não do método
public abstract void deposita(double valor);
// este construtor abaixo obriga que seja passado a agencia e conta(número) como parâmetro no "New conta()"
public Conta(int agencia, int numero){
total++;
this.agencia = agencia;
this.numero = numero;
// System.out.println("Estou criando uma conta");
}
public boolean saca(double valor){
if(valor > 0 && this.saldo >= valor){
this.saldo -= valor;
System.out.println("saque ok");
return true;
}
System.out.println("saldo insuficiente");
return false;
}
public boolean transfere(double valor, Conta destino){
if (this.saca(valor)){
destino.deposita(valor);
System.out.println("transferencia ok");
public class ContaCorrente extends Conta {
public ContaCorrente(int agencia, int numero){
super(agencia, numero); //criando o construtor e repassando os parâmetros para a classe mãe
}
@Override
public boolean saca(double valor){
double valorASacar = valor + 0.2;
//System.out.println(valorASacar);
// System.out.println("entrou aqui");
return super.saca(valorASacar);
}
@Override
public void deposita(double valor) {
if (valor > 0){
this.saldo += valor;
}
}
}
insira seu código aqui