Construtores

2 respostas
D

Bom, eu estava lendo o material de certicação do site e vi na parte de construtores o seguinte:

"- Todo construtor precisa ter em sua primeira linha uma chamada a outro construtor overloaded (ex. this(); ) ou a um construtor de uma superclasse (ex.: super(); ) "

O que diferencia uma classe que tem em seu construtur o this() de uma com o contrutor contendo o super()??

Até mais, e isso é so curiosidade.

2 Respostas

J

Oi

Diego, eu não tenho muita certeza não, mas vamos lá…

Quando vc faz uma referência super, vc está fazendo uma referência a metaclasse do seu objeto, no caso a classe que o seu objeto está sendo derivado. Mas quando vc faz uma referência this, aí vc já está fazendo uma referência apenas ao seu objeto, não envolvendo mais a sua metaclasse…

T+

I
Veja esse codigo:

class Pai

{

int i;

Pai()

{

this.i=1;

}

}

class Filho

{

Filho()

{

this.i=2;

}

Filho(int j)

{

this(); // Aqui garante que i=2. Se fosse super(), seria i=1;

this.i += j;

}

}

Espero ter ajudado.

Igor Cavalcante
Salvador - Bahia

Criado 12 de novembro de 2003
Ultima resposta 21 de nov. de 2003
Respostas 2
Participantes 3