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

Popular posts from this blog

How to write data into a excel file using vbscript

Format date as yyyy-mm-dd using vbscript