題目情境
代碼片段大意:`class Dog extends Man implements BestFriend` 或類似結構,詢問哪個選項正確描述關係。
答案:選 C
選項解析:
- A:人繼承了狗 —— 錯誤,繼承方向反了,應是 `Dog extends Man` 表示狗是人的子類(邏輯不合理)。
- B:定義了一個最好的朋友他的名字叫狗 —— 錯誤,`BestFriend` 是接口,非類名。
- C:定義了一個狗他是最好的朋友 —— 正確。`Dog` 類實現了 `BestFriend` 接口,表示「狗是最好的朋友」。
- D:定義了一個狗 —— 不完整,未體現接口關係。
知識點:接口 vs 繼承
extends 表示「是一種」(is-a)關係,單繼承。
implements 表示「具有...能力/屬性」(has-ability),可多實現。
- 題目中 `Dog implements BestFriend` 表達「狗具備最好朋友的特質」,而非繼承關係。
總結
正確答案為 C。理解接口與繼承的語義區別,是 Java 面向對象設計的核心。