14. 關於 Java 程式語言之敘述,下列何者正確?
(A)Java 支援如同 C++程式語言的多重繼承
(B)在 Java 中,可直接寫程序,而不用定義任何類別
(C)在 Java 中,一個應用程式是一堆類別與這些類別實例的集合
(D)Java 程式以直譯器(interpreter)執行,只允許單一執行緒
統計: A(49), B(20), C(131), D(19), E(0) #3145734
詳解 (共 2 筆)
【解題思路】
這題要靠你對 Java 的基本哲學「純物件導向」來判斷。
關鍵觀念:
-
Java 不支援多重繼承(class 不行,只能透過 interface)
-
Java 所有程式都必須寫在 class 裡
-
Java 應用程式由許多 class + 物件組成
-
Java 支援多執行緒(Thread 是 Java 強項)
只有選項 (C) 完全符合 Java 的核心概念。
【為什麼其他選項不正確(逐一破題)】
(A) Java 支援像 C++ 的多重繼承
錯誤。
Java 的 class 不能多重繼承,只能「單一繼承」。
多重繼承只能用 implements 多個 interface 來模擬。
(B) Java 中可直接寫程序,不用定義類別
錯誤。
Java 所有程式都必須寫在 class 裡,不像 C 可以直接寫函式。
(D) Java 程式以直譯器執行,只允許單一執行緒
錯誤兩次:
-
Java 是「編譯 + 直譯」混合:先編譯成 bytecode → JVM 直譯/JIT
-
Java 最有名的特性之一就是 支援多執行緒(multithreading)
(C) 一個 Java 應用程式是由多個類別及其物件組成
完全正確,就是物件導向的本質。
【延伸知識】
Java 規則(必背):
-
單一繼承,多介面
-
所有程式都寫在 class 中
-
強制物件導向(不像 C++ 可混用程序式)
-
支援 multithreading(Thread / Runnable)
-
JVM 使 Java 有「跨平台」能力(Write once, run anywhere)
常考比較:
| 語言 | 多重繼承 | 是否強制 class | 支援多執行緒 |
|---|---|---|---|
| C++ | 有 | 可有可無 | 有 |
| Java | class 不支援、interface 可多重 | 強制 | 有(很強) |
| C | 不支援 | 無 class | 無 |
【記憶技巧】
口訣:
Java:單繼承、多介面、全 class、多執行緒。
或更短:
單、不、全、多。
單繼承、不允許裸程式、全部要 class、多執行緒。
【常見錯誤】
-
看到 interface 就以為 Java 能多重繼承
class 不行!interface 才可以多個。 -
把「可跨平台」誤當答案
但題目並沒有這項選項。 -
誤以為 Java 跟 Python 一樣可裸寫程式
Java 必須用 class 包起來。