我正在學習,我整個這一段代碼來:動態和靜態綁定在Java中
class Shoe{
public Shoe(){
this("This is a shoe");
System.out.println("Base Class");
}
public Shoe(String s){
System.out.println(s);
}
}
class TennisShoe extends Shoe{
public TennisShoe(){
this("This is a Tennis Shoe");
System.out.println("Derived Class");
}
public TennisShoe(String s) {
super("Exam 1");
System.out.println(s);
}
}
class WhiteTennisShoe extends TennisShoe{
public WhiteTennisShoe(String s){
System.out.println(s);
}
}
class Test{
public static void main(String args[]) {
new WhiteTennisShoe ("A white tennis shoe is created");
}
}
我想輸出將是:
A white tennis shoe is created
因爲只有子類的構造函數WhiteTennisShoe被調用。然而,真正的輸出是完全不同的東西:
Exam 1
This is a Tennis Shoe
Derived Class
A white tennis shoe is created
這是因爲動態和靜態綁定?或者它是純粹的Java繼承?我很困惑。我一直在尋找關於靜態和動態綁定幾天的很好的解釋,但是我沒有找到。