Ainda não tem acesso? Estude com a gente! Matricule-se
Ainda não tem acesso? Estude com a gente! Matricule-se

Herança - Construtor

No exemplo abaixo por quê o valor do saldo imprime 200 sendo que eu chamo a classe corrente.

public class Conta { int numero; String titular; private double saldo;

Conta(){
    saldo=100;
}
public void setSaldo(double sal) {
    saldo+=sal;
}
public double getSaldo() {
    return saldo;
}

}

public class Corrente extends Conta { Corrente(){ setSaldo(100); } }

public class principal {

public static void main(String[] args) {
    Corrente c = new Corrente();

    System.out.println("Saldo:"+c.getSaldo());//PORQUE IMPRIME 200? sendo que eu não criei o objeto da classe Conta?


}

}

3 respostas

Oi Pedriana, tudo bem?

Isso acontece porque o construtor da classe Corrente está chamando o construtor da classe Conta.

Logo, você inicializa o saldo com 100 no construtor de Conta, e, ao chamar o setSaldo no construtor de Corrente, você soma mais 100, resultando em 200.

Sacou? :)

Porque está somando 100+100...

Você está mandando settar 100, porém no construtor já tem 100 atribuído...

public class Corrente extends Conta { Corrente(){ setSaldo(100); } }

Conta(){
    saldo=100;
}
public void setSaldo(double sal) {
    saldo+=sal;
}

Oi Pedriana, sua dúvida foi solucionada?