高考申論題
105年
[資訊處理] 程式語言
第 一 題
一、請問下列 Java 程式碼編譯後輸出結果為何?(20 分)
class tree{
void message(){ System.out.println("1359"); }
int tree(){ System.out.println("Tr"); return 3; }
}
class two extends tree{
void message(){ super.message();
System.out.println("4321"); }
two(){ System.out.println("Tw"); }
}
public class one extends two{
void message(){ System.out.println("1234"); }
one(){ System.out.println("On"); }
public static void main(String[] args){
one Exam = new one();
Exam.message();
}
}
📝 此題為申論題
思路引導 VIP
解題關鍵在於掌握 Java 物件實例化時的「建構子連鎖呼叫(Constructor Chaining)」規則,以及「方法覆寫(Override)」的多型表現。特別注意 tree 類別中的 int tree() 具有回傳型別,這代表它是一個普通方法而非建構子,這是常見的考題陷阱。
🤖
AI 詳解
AI 專屬家教
【解題思路】運用 Java 建構子的連鎖呼叫機制(由上層父類向下執行)與動態方法分派(Dynamic Method Dispatch)的多型原則進行逐步追蹤。 【詳解】 執行流程逐步推導如下:
▼ 還有更多解析內容