Olá neste exemplo tenho duas classes A e B, onde A extends B, cada uma com seu construtor devidamente implementado, mas observei que mesmo quando crio um objeto da classe A o construtor da classe B ainda é invocado, visto que a saída do programa é
qtdA::1
qtdB::2
O programa é
package certificacao;
class B{
private static int qtdB;
B(){
qtdB++;
}
public static int getQtd(){
return qtdB;
}
}
class A extends B {
private static int qtdA;
A(){
qtdA++;
}
public static int getQtd(){
return qtdA;
}
}
public class TestaConstrutor{
public static void main(String... args){
A a = new A();
B b = new B();
System.out.println("qtdA::"+A.getQtd());
System.out.println("qtdB::"+B.getQtd());
}
}
Por que isso acontece, mesmo quando não chamo super(); no construtor da classe A?
Obrigado