典型考題:父類 Parent(String pName) 設置 name="kitty",子類 Test(String Name) 調用 super("kitty") 並設置 name="hello"。問輸出順序。
super()(或顯式 super("kitty"))。name = "kitty"(若有字段初始化語句)。name = "hello"(覆蓋父類同名字段)。super(...) 傳參。class Parent {
String name = "default";
Parent(String pName) {
this.name = pName;
System.out.println("Parent: " + name);
}
}
class Child extends Parent {
String name = "child-default";
Child(String n) {
super("kitty");
this.name = n;
System.out.println("Child: " + name);
}
}
public class Main {
public static void main(String[] args) {
new Child("hello");
}
}
// 輸出:
// Parent: kitty
// Child: hello
理解此順序,即可準確預測任何繼承鏈下的構造輸出。