請問下列 Java 程式的執行結果為何者?class B {
public void showMessage() {
System.out.println("Test1");
}
}
class C extends B {
public void showMessage() {
super.showMessage();
System.out.println("Test2");
}
}
class A {
public static void main(String[] args) {
C test = new C();
test.showMessage();
}
}
ATest1
BTest1 Test2正確答案
CTest2
DTest2 Test1
答案與詳解
B
正確答案
C 類別覆寫 showMessage(),先以 super 呼叫父類別 B 印出 Test1,再印出 Test2,故輸出為 Test1 Test2。
逐選項解析
ATest1✕ 錯誤
僅印出 Test1,忽略 C 類別 showMessage() 中 super 之後的 println("Test2"),故不完整。
BTest1 Test2✓ 正確
CTest2✕ 錯誤
僅印出 Test2,忽略 super.showMessage() 會先執行父類別 B 的 showMessage() 印出 Test1。