Bah, achei a solução ! e vcs ? o que essa coisa imprime?

public class Vehicle {
Vehicle (int wheels){
super();
System.out.print(“Vehicle(int),”);
}
}

public class Car extends Vehicle{
Car(int wheels, String make){
super (wheels);
System.out.print(“Car(int,String),”);
}
Car(){
super (4);
System.out.print(“Car(),”);
}
}

public class FourWheelDrive extends Car {
FourWheelDrive (int wheels){
this ();
System.out.print(“FourWheelDrive(int),”);
}
FourWheelDrive(){
super();
System.out.print(“FourWheelDrive(),”);
}
FourWheelDrive(int wheels, String make){
this(wheels);
System.out.print(“FourWheelDrive(int,String),”);
}
public static void main (String args[]){
Vehicle v = new FourWheelDrive(2,“Beetle”);
}
}

acredito que ele apenas vai “empilhando” as funcoes, e depois do contruct do OBJECT, ele comece a executar os System.out.println de traz pra frente

Vehicle(int),Car(),FourWheelDrive(),FourWheelDrive(int),FourWheelDrive(int,String),

outra coisa interessante, é que o compilador coloca a chamada “super()” (contrutor pai, sem parametros) automaticamente nos contrutores filhos desde que eles nao tenham this nem super…

o q eu quero dizer é, o resultado seria exatamente o mesmo, se nenhum “super()” estivesse presente

está certo !!

Valew pessoal, aprendi mais uma !!! Essa que o compilador só coloca “super();” automaticamente desde que não tenha nenhum “this(…);”

[]'s