public class Athlete {
String athleteName;
String [] Achivmentlist;
Athlete(){
System.out.println("empty Athlete constructor");
}
Athlete(String athleteName, String [] Achivmentlist){
System.out.println("full Athlete constructor ");
this.athleteName = athleteName;
this.Achivmentlist = Achivmentlist;
}
}
public class Judoka extends Athlete{
int weight;
Judoka(){
System.out.println("empty Judoka");
}
Judoka(String athleteName, String [] Achivmentlist){
System.out.println("full judoka constructor");
this.athleteName = athleteName;
this.Achivmentlist = Achivmentlist;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
String [] achivment = {"Gold","Silver","Bronze"};
Judoka Jordan = new Judoka("Jordan Galili",achivment);
}
при выполнении результата:
empty Athlete constructor
full judoka constructor
Я ожидаю:
Full Athlete constructor // Instead of empty Athlete constructor
Full judoka constructor
Я понимаю, что конструктор суперкласса Athlete будет вызываться перед конструктором подкласса Judoka из-занаследование.
Что я не понимаю, так это то, почему компилятор вызывает конструктор суперкласса Athlete пустой вместо конструктора суперкласса Athlete full , который получает точные параметры в качестве подкласса Judoka?
Попытка понять философию этого / логика за сценой (я понимаю, что это дублирующий код)