Eu escrevi a classe Conta desta forma:
public class Conta {
private double saldo;
private int agencia;
private int numero;
private Cliente titular;
private static int total = 0;
// Criando um construtor
public Conta(int agencia, int numero) {
Conta.total++;
System.out.println("O total de contas é: " + Conta.total + "\n##########");
this.agencia = agencia;
this.numero = numero;
this.saldo = 0.0;
System.out.println("ID " + Conta.total + "\nNúmero: " + this.numero + "\nAgência: " + this.agencia + "\n##########");
}
public void deposita(double valor) {
this.saldo += valor;
}
public boolean saca(double valor) {
if(this.saldo >= valor) {
this.saldo -= valor;
return true;
}
else {
this.saldo -= valor;
System.out.println("Está no cheque especial.");
System.out.println("R$ " + this.saldo);
return false;
}
}
public boolean transfere(double valor, Conta destino) {
if(this.saca(valor)) {
destino.deposita(valor);
System.out.println("Saldo total R$ " + this.saldo);
return true;
}
else {
System.out.println("Valor indisponível. - R$ " + this.saldo);
return false;
}
}
// Getters
public double getSaldo() {
return this.saldo;
}
public int getAgencia() {
return this.agencia;
}
public int getNumero() {
return this.numero;
}
public Cliente getTitular() {
return this.titular;
}
// Setters
public void setSaldo(double saldo) {
this.saldo = saldo;
}
public void setAgencia(int agencia) {
if(this.agencia<=0) {
System.out.println("Não pode agencia menor ou igual a zero.");
} else {
this.agencia = agencia;
}
}
public void setNumero(int numero) {
if(this.numero<=0) {
System.out.println("Não pode número menor ou igual a zero.");
} else {
this.numero = numero;
}
}
public void setTitular(Cliente titular) {
this.titular = titular;
}
}
A classe ContaCorrente:
// new ContaCorrente()
public class ContaCorrente extends Conta {
// O construtor da classe mãe só pertence a ela própria. Assim, precisamos construir o nosso próprio construtor.
public ContaCorrente(int agencia, int numero) {
super(agencia, numero);
}
}
A ContaPoupanca seguiu o mesmo padrão da ContaCorrente e para ficar mais fácil não vou copiar aqui.
O que acontece é que quando eu vou testar na classe TesteContas
, ele tá saindo um valor nada a ver.
public class TesteContas {
public static void main(String[] args) {
//Conta nubank = new Conta(001, 101);
//Conta inter = new Conta(001, 010);
ContaCorrente cc = new ContaCorrente(001, 0664);
cc.deposita(100.00);
ContaPoupanca cp = new ContaPoupanca(001, 0664);
cp.deposita(200.00);
cc.saca(50.0);
cp.saca(20.00);
}
}
O resultado está nesse link https://ibb.co/QdCdWPT (hospedagem de imagens grátis, não é vírus hauhauh).
Desde já, agradeço a atenção :)