This() e super()

4 respostas
T

Gostaria de saber a diferença de super() e this(), li use a cabeça! java, porém não conseguir destinguir as diferenças. Obrigado :arrow:

4 Respostas

ze_kiefa

super faz referência à classe Mãe.
super() chama o contrutor da classe Mãe.
this faz referência à própria classe.

kaique

Só completando…se você escreve this(), quer dizer que está chamado o construtor default da classe onde você escreveu o código…

peczenyj
public class A extends B {
        public A() {
                super(); // chama o que ?
                System.out.println("Construtor A()");
        }

        public A(int i){
                this(); // chama o que ?
                System.out.println("Construtor A(int)");
        }
        public static void main (String [] xxx){

                System.out.println("new A()");
                A a1 = new A();

                System.out.println("new A(0)");
                A a2 = new A(0);

                System.out.println("new B()");
                B b1 = new B();
        }
}

class B{
        public B(){
                System.out.println("Construtor B()");
        }
}

Este código irá produzir:

new A()
Construtor B()
Construtor A()
new A(0)
Construtor B()
Construtor A()
Construtor A(int)
new B()
Construtor B()

Vc percebeu que, em cada super() vc chamou o construtor da classe B (pai) e a cada this() vc chamou o construtor da classe em questão?

Basicamente essa é a diferença ;-)

T

Entendi perfeitamente, muito obrigado

Criado 25 de setembro de 2007
Ultima resposta 25 de set. de 2007
Respostas 4
Participantes 4