Write the execution results of Java multiple inheritance code
寫出Java多重繼承程式碼的執行結果
請問下列 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();
}
}
答案
一個java檔案,可以有多個類別,但只能有一個public class
如果檔名是Main.java,程式碼需要改成下面才能執行
class one extends two{
void message(){ System.out.println("1234"); }
one(){ System.out.println("On"); }
}
public class Main{
public static void main(String[] args){
one Exam = new one();
Exam.message();
}
}
1. one Exam = new one();建立one物件時,
會先執行父類別two建構子,再執行子類別one建構子,故會印出Tw
再印出On
2. Exam.message();這行程式碼,印出1234
Chatgpt 回答
以下是程式碼編譯後的輸出結果:
```
Tw
On
1359
4321
1234
```
程式碼的執行順序如下:
1. `one` 類別的建構子 `one()` 先被呼叫,印出 "On"。
2. 接著 `two` 類別的建構子 `two()` 被呼叫,印出 "Tw"。
3. `one` 類別的 `message()` 方法被呼叫,印出 "1234"。
4. `two` 類別的 `message()` 方法被呼叫,它首先呼叫父類別 `tree` 的 `message()` 方法,印出 "1359",然後再印出 "4321"。
最後,程式的 `main` 方法建立了一個 `one` 類別的物件 `Exam`,然後呼叫 `Exam.message()`,所以最後印出 "1234"。
Comments
Post a Comment