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:
super faz referência à classe Mãe.
super() chama o contrutor da classe Mãe.
this faz referência à própria classe.
Só completando…se você escreve this(), quer dizer que está chamado o construtor default da classe onde você escreveu o código…
[code]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()”);
}
}[/code]
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
Entendi perfeitamente, muito obrigado