Ao compilar o código abaixo recebo o seguinte erro:
TesteConta.java:81: error: constructor ContaCorrente in class ContaCorrente cannot be applied to given types;
Conta cc = new ContaCorrente (c2,5812444,200.1,0.2); ^
required: no arguments
found: Cliente,int,double,double
reason: actual and formal argument lists differ in length
1 error
Só irá compilar se comentar a linha :
Conta cc = new ContaCorrente (c2,5812444,200.1,0.2);
Gostaria de entender porque isto está ocorrendo e como posso resolver.
OBS.: Basta copiar o código para realizar o teste.
class Cliente {
private String nome;
private String rg;
private String cpf;
private String dataNascimemto;
public Cliente (String nome, String rg, String cpf, String dataNascimemto) {
this.nome = nome;
this.rg = rg;
this.cpf = cpf;
this.dataNascimemto = dataNascimemto;
}
public String getNomeCliente (){
return this.nome;
}
//...
}
class Conta {
private Cliente titular;
private int numero;
protected double saldo;
private double limite;
//...
public Conta(Cliente titular,int numero, double limite, double saldoInicial){
this.titular = titular;
this.numero = numero;
this.limite = limite;
this.saldo = saldoInicial;
}
public Conta(){
}
public void getDadosConta(){
System.out.println ("Cliente: "+ this.titular.getNomeCliente() +
"\nNumero da Conta: " + this.numero +
"\nSaldo Atual: R$" + this.saldo +
"\nLimite: R$" + this.limite);
}
//...
}
class ContaCorrente extends Conta {
public void atualiza (double taxa) {
this.saldo += this.saldo * taxa * 2;
}
}
class ContaPoupanca extends Conta {
public void atualiza (double taxa){
this.saldo += this.saldo * taxa *3;
}
public void deposita (double valor) {
this.saldo += valor - 0.10;
}
}
class TesteConta {
public static void main (String [] args) {
Cliente c1 = new Cliente("joao", "123456","12345678912", "01/12/2016");
Conta c = new Conta (c1,5812244,100.1,0.1);
Cliente c2 = new Cliente ("jose", "123455","12345678912", "02/12/2016");
Conta cc = new ContaCorrente (c2,5812444,200.1,0.2);
c.getDadosConta();
//...
}
}