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:
This() e super()
T
4 Respostas
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…
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
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Ontologias e Web Semantica: Do conceito a aplicacao Por Ivam Galvao Filho — Casa do Codigo