傢伙能否請您給我解釋一下怎麼來的這個例子的輸出是:解釋這個繼承Java程序的輸出?
Exam1
This is Tennis Shoes
derived class
This is a white Tennis Shoes is created
如果你能到我,我們創造了White Tennis Shoes
對象發生了什麼之後到底發生了什麼解釋。 請大家不要告訴我做你的功課,或者我只是準備考試,而這是一個老問題。
的代碼如下:
class Shoes{
public Shoes(){
this("you have created a shoes Object");
System.out.println("This is the base class");
}
public Shoes(String s){
System.out.println(s);
}
}
class TennisShoes extends Shoes{
public TennisShoes(){
this("This is Tennis Shoes");
System.out.println("derived class");
}
public TennisShoes(String s){
super("Exam1");
System.out.println(s);
}
}
class WhiteTennisShoes extends TennisShoes{
public WhiteTennisShoes(String s){
System.out.println(s);
}
}
class ConstructorPrintingTester{
public static void main(String[] args){
WhiteTennisShoes shoesObj;
shoesObj = new WhiteTennisShoes("This is a white Tennis Shoes is created");
}
}
無論作業與否,爲什麼不先解釋發生了什麼? –
我不知道當你調用this(「xxxx」)時,它會調用當前構造函數中的另一個構造函數,這就是爲什麼它在思考15分鐘後阻止了我!感謝phihag現在非常清楚,我喜歡他列舉他們的方式,這是非常有用的。 –
我也完全忘記了當你調用super()構造函數時,Java將爲我創建一個。所以這就是爲什麼我真的無法從輸出中理解一件事。 –