Construtores

2 respostas
thiagolgf

Boa noite a todos!

Tenho uma classe Conta.java como consta abaixo:

public class Conta{

private double saldo;

private double limite;
//Constructor

public Conta(double valor){

this.saldo = 0;

this.limite = valor;

}
//Method

public void inicializaLimite(double limite){

this.saldo = 0;

this.limite = limite;

}

}

E outra classe ContaCorrente.java que estende Conta.java.

public class ContaCorrente extends Conta{

//Constructor

public ContaCorrente(double valor){

this.inicializaLimite(valor);

}

}

Desta forma, o Eclipse retorna um erro dizendo que o construtor Conta() está indefinido.

Por que preciso ter o construtor Conta() definido na classe Conta.java mesmo tendo criado Conta(double valor)?

Thiagolgf

2 Respostas

R

porque o ContaCorrente está herdando o Conta e nao ta chamando o contrutor do Conta com parametro…

dai o ContaCorrente por default executa o construtor de Conta sem parametro e voce nao criou um sem parametros na classe Conta

vc pode resolver isso criando um construtor vazio no Conta… se quiser usar o contrutor do Conta, tem que colocar um super(valor) logo no começo do contrutor do ContaCorrente

B

public class ContaCorrente extends Conta{ //Constructor public ContaCorrente(double valor){ super(valor); //problema resolvido } }

talvez esteja falando bestera, mas para chamar um construtor da classe pai, vc só consegue utilizando o super, ao colocar Conta(valor), ele vai procurar um metodo chamado assim, e não vai encontar por isso o erro de que o metodo não esta definido.

Construtor != Metodo

Criado 26 de fevereiro de 2013
Ultima resposta 26 de fev. de 2013
Respostas 2
Participantes 3