1. 抽象的演進
- 機器語言 → 組合語言 → 高級語言(C/Basic):對**硬體**的抽象
- Lisp/APL:對**特定問題領域**的抽象
- 面向對象:對**現實問題元素**的抽象,提供通用建模工具
程式語言演進本質 = 人類用電腦解決現實問題的思維演進。
2. 物件五大基本特性
- 萬物皆物件
- 程式 = 物件集合 + 訊息傳遞
- 每個物件有自己的儲存空間(由其他物件組成)
- 每個物件有型別(類別)
- 同類物件可接收相同訊息
物件描述三要素:狀態(資料)、行為(方法)、標識(區分)。
3. 介面與型別
- 類別:描述同類物件的資料元素與功能,實際上是一種**資料型別**
- 介面:定義對特定物件可發出的請求(方法簽名),由型別決定
- 例:`Human` 型別決定介面可包含 `eat()`、`think()`
4. 繼承:型別關係與複用
- 子型別繼承父型別的介面與實作,建立 **is-a** 關係
- 類別 = 資料 + 方法 + 相互關係
5. 多型:面向介面程式設計
- 將物件視為其基型別,編寫**不依賴具體型別**的代碼
- 向上轉型後,呼叫方法仍執行具體子類別的實作(動態綁定)
核心總結
面向對象思維 = 將現實問題元素映射為物件 → 歸類為型別 → 定義介面 → 利用繼承建立層次 → 以多型實現解耦與擴展。