Ao compilar o código abaixo recebo o seguinte erro:
ContaCorrente.java:1: error: constructor Conta in class Conta cannot be applied to given types;
class ContaCorrente extends Conta { ^
required: Cliente,int,double,double
found: no arguments
reason: actual and formal argument lists differ in length
ContaPoupanca.java:1: error: constructor Conta in class Conta cannot be applied to given types;
class ContaPoupanca extends Conta { ^
required: Cliente,int,double,double
found: no arguments
reason: actual and formal argument lists differ in length
2 errors
Porém, notei que quando crio o construtor padrão da classe Conta o código compila normalmente. Gostaria de entender do que se trata esse erro e porque ele está ocorrendo.
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;
}
//Quando descomento o construtor abaixo o código compila normalmente.
/*public Conta(){
}*/
//...
}
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 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;
}
//...
}