почему явный пустой конструктор суперкласса вызывается при отправке параметров - PullRequest
0 голосов
/ 24 октября 2019
 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?

Попытка понять философию этого / логика за сценой (я понимаю, что это дублирующий код)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...