Microsoft PowerPoint - F263-CH10.ppt [相容模式]



Similar documents
6-1-1極限的概念

Microsoft Word - 第四章.doc

Microsoft Word doc

第 6. 節 不 定 積 分 的 基 本 公 式 我 們 可 以 把 已 經 知 道 反 導 函 數 之 所 有 函 數 都 視 為 不 定 積 分 的 基 本 公 式 基 本 公 式 涵 蓋 的 範 圍 愈 大, 我 們 求 解 積 分 就 愈 容 易, 但 有 記 憶 不 易 的 情 事 研 讀

所 3 學 分 課 程, 及 兩 門 跨 領 域 課 程 共 6 學 分 以 上 課 程 學 生 在 修 課 前, 必 須 填 寫 課 程 修 課 認 定 表, 經 班 主 任 或 指 導 教 授 簽 名 後 始 認 定 此 課 程 學 分 ) 10. 本 規 章 未 盡 事 宜, 悉 依 學 位

目 錄 項 目 內 容 頁 數 1 手 機 要 求 3 2 登 記 程 序 3 3 登 入 程 序 4 4 輸 入 買 賣 指 示 6 5 更 改 指 示 14 6 取 消 指 示 18 7 查 詢 股 票 結 存 21 8 查 詢 買 賣 指 示 23 9 更 改 密 碼 查 詢 股

Microsoft PowerPoint - 資料庫正規化(ccchen).ppt

實德證券網上交易系統示範

寫 作 背 景 導 讀 [98] L Lyman Frank Baum

章節

<4D F736F F D20B3E6A4B830312D2D2DBCC6BD75BB50BEE3BCC6AABAA55BB4EEB942BAE22E646F6378>

肆 研 究 方 法 進 行 本 研 究 前, 我 們 首 先 對 研 究 中 所 用 到 名 詞 作 定 義 定 義 : 牌 數 : 玩 牌 時 所 使 用 到 撲 克 牌 數 次 數 : 進 行 猜 心 術 遊 戲 時, 重 複 分 牌 次 數 數 : 進 行 猜 心 術 遊 戲 時, 每 次 分

e-Submission System Quick Reference Guide for Publication Related Matters (Chinese version)

內 政 統 計 通 報

授 課 老 師 章 節 第 一 章 教 學 教 具 間 3 分 鐘 粉 筆 CNC 銑 床 教 學 內 容 CNC 銑 床 之 基 本 操 作 教 材 來 源 數 值 控 制 機 械 實 習 Ⅰ 1. 了 解 CNC 銑 床 的 發 展 2. 了 解 CNC 銑 床 刀 具 的 選 用 3. 了 解

證 券 簡 易 下 單 :2121 證 券 簡 易 下 單 1. 主 工 具 列 的 視 窗 搜 尋 器 直 接 輸 入 點 擊 主 選 單 證 券 專 區 下 單 特 殊 下 單 2121 證 券 簡 易 下 單 畫 面 說 明 1. 下 單 區 2. 個 股 行 情 資 訊 與

16

五 四 五 說 ( 代 序 ) 李 澤 厚 劉 再 復 I I II IV V VII 第 一 篇 五 四 新 文 化 運 動 批 評 提 綱 附 論 一 中 國 貴 族 精 神 的 命 運 ( 提 綱 )

二 兒 歌 選 用 情 形 ( ) 2 ( ) ( )

CONTENTS 訓 練 內 容 設 計 法 056 淡 季 期 的 訓 練 058 旺 季 期 的 訓 練 060 針 對 爬 坡 賽 的 訓 練 內 容 062 賽 後 的 資 料 分 析 PART4/ 鏑 木 毅 先 生 的 建 言 活 用 於 越 野 路 跑 的 心 跳 訓

簽 呈

骨 折 別 日 數 表 1. 鼻 骨 眶 骨 ( 含 顴 骨 ) 14 天 11. 骨 盤 ( 包 括 腸 骨 恥 骨 坐 骨 薦 骨 ) 40 天 2. 掌 骨 指 骨 14 天 12. 臂 骨 40 天 3. 蹠 骨 趾 骨 14 天 13. 橈 骨 與 尺 骨 40 天 4. 下 顎 ( 齒

BSP 烤箱 - 封面-2

奇 妙 的 24 摘 要 從 撲 克 牌 中 隨 機 抽 取 4 張 牌 可 以 有 1820 種 牌 組, 在 這 1820 種 牌 組 中, 有 1362 組 可 經 由 四 則 運 算 的 方 式, 算 出 24 點, 有 458 組 無 解 快 速 求 解 的 方 法 有 相 加 法 因 數

268 別 行 政 區 所 以, 全 國 人 民 代 表 大 會 根 據 憲 法 第 31 條 規 定 設 立 了 特 別 行 政 區 沒 有 憲 法 第 31 條 的 規 定, 就 沒 有 特 別 行 政 區 制 度 存 在 的 合 法 性 基 礎 62 正 如 上 述, 憲 法 為 特 別 行

(Microsoft Word - MOODLE990201\266i\266\245\244\342\245U )

四 修 正 幼 兒 園 師 資 類 科 應 修 學 分 數 為 四 十 八 學 分, 並 明 定 學 分 數 抵 免 之 相 關 規 定 及 規 範 修 習 幼 兒 園 教 育 專 業 課 程 之 最 低 年 限 ( 修 正 條 文 第 五 條 ) 五 發 給 修 畢 師 資 職 前 教 育 證 明

sle cover 1

NCKU elearning Manual

Microsoft Word - Draft circular on Sub Leg Apr (chi)_Traditional

PowerPoint 簡報

研究一:n人以『剪刀、石頭、布』猜拳法猜拳一次,決定一人勝

101年度社會福利方案 網路線上操作手冊

Microsoft Word - ch07

二零零六至零七年施政報告

長跨距暨挑高建築特殊結構系統之調查分析

128 提 示 樞 紐 分 析 表 的 用 途 樞 紐 分 析 表 是 指 可 以 用 來 快 速 合 併 和 比 較 大 量 資 料 的 互 動 式 表 格, 透 過 它 可 以 詳 細 分 析 數 值 資 料, 特 別 適 用 於 下 列 情 況 : 需 要 從 含 有 大 量 資 料 的 清


HSBC Holdings plc Interim Report Chinese

支 持 機 構 : 社 會 文 化 司 主 辦 機 構 : 澳 門 學 聯 澳 門 青 年 研 究 協 會 電 話 : 傳 真 : 網 址 : 報 告 主 筆 : 李 略 博 士 數 據 錄



會 員 專 區 使 用 手 冊 目 錄 一 基 本 介 紹 會 員 專 區 登 入 位 置 主 畫 面 與 網 站 架 構 : 功 能 導 覽 列 說 明 :... 3 二 DOI 查 詢 與 維 護... 4 三 DOI 註 冊 期 刊 類 型...

目 錄 壹 題 目 1: 新 增 商 品 ( 商 品 名 稱 為 玉 井 芒 果 乾 禮 盒 )... 3 貳 題 目 2: 新 增 商 品 ( 商 品 名 稱 為 紅 磚 布 丁 精 選 禮 盒 )... 5 參 題 目 3: 新 增 商 品 ( 商 品 名 稱 為 晶 鑽 XO 醬 禮 盒 ).

2 飲 料 調 製 丙 級 技 術 士 技 能 檢 定 必 勝 寶 典 Beverage Modulation Preparation 應 考 綜 合 注 意 事 項 A1 A2 A3 A4 A5 A6 B7 B8 B9 B10 B11 B12 C13

校 長 遴 選 者 就 相 關 遴 選 事 項, 有 程 序 外 之 接 觸 遴 選 會 委 員 在 任 期 間 因 故 無 法 執 行 任 務 或 有 不 適 當 之 行 為 者, 由 各 該 主 管 機 關 解 聘 之 ; 其 缺 額, 依 第 一 項 至 第 五 項 規 定 聘 ( 派 ) 委

xls

???T????????

2 2.1 A H ir@abchina.com 2

投影片 1

目 錄 一 系 統 登 入... 2 ( 一 ) 系 統 登 入 畫 面... 2 ( 二 ) 首 次 登 入 請 先 註 冊... 3 ( 三 ) 忘 記 單 位 帳 號... 8 ( 四 ) 忘 記 密 碼 ( 五 ) 健 保 卡 更 換 ( 六 ) 重 寄 確 認 信.

人 們 在 為 生 活 空 間 中 的 物 品 選 擇 色 彩 時, 不 自 覺 地 會 反 應 出 大 腦 對 色 彩 的 解 釋, 設 計 師 若 能 掌 握 色 彩 所 隱 藏 的 訊 息, 便 可 以 充 分 利 用 並 創 造 出 極 具 魅 力 的 產 品 視 覺 對 知 覺 的 影 響

關 於 教 育 部 學 習 拍 立 得 教 育 部 於 (103) 年 度 整 合 各 縣 市 政 府 部 屬 機 構 大 學 及 民 間 的 數 位 資 源 與 服 務, 依 不 同 類 型, 分 別 匯 集 於 教 育 大 市 集 教 育 百 科 教 育 媒 體 影 音 教 育 部 學 習 拍

「家加關愛在長青」計劃完成表現及評估報告

瑞興銀行

前 項 第 三 款 所 定 有 機 農 產 品 及 有 機 農 產 加 工 品 驗 證 基 準, 如 附 件 一 第 七 條 驗 證 機 構 受 理 有 機 農 產 品 及 有 機 農 產 加 工 品 之 驗 證, 應 辦 理 書 面 審 查 實 地 查 驗 產 品 檢 驗 及 驗 證 決 定 之

包 裝 維 生 素 礦 物 質 類 之 錠 狀 膠 囊 狀 食 品 營 養 標 示 應 遵 行 事 項 一 本 規 定 依 食 品 安 全 衛 生 管 理 法 第 二 十 二 條 第 三 項 規 定 訂 定 之 二 本 規 定 所 稱 維 生 素 礦 物 質 類 之 錠 狀 膠 囊 狀 食 品, 指

ART_RAE16_ticket_cn_p.1

Layout 1

連江縣政府所屬學校兼任代課及代理教師聘任實施要點(草案)

Microsoft PowerPoint - 102教師升等說明會


Microsoft Word - 小論文-變性狗問卷調查.doc

PART 2 系 統 篇 仔 細 檢 查 記 憶 體 和 顯 示 卡 AIDA64 Everest 操 作 : 使 用 AIDA64 檢 測 主 機 溫 度 AIDA64 DirectX AIDA

第一章 緒論

untitled

目 錄 頁 1. 歡 迎 使 用 網 上 預 約 面 談 訪 問 系 統 新 用 戶 新 用 戶 登 入 帳 戶 程 序 啟 動 網 上 預 約 面 談 訪 問 帳 戶 核 對 帳 戶 的 地 址 資 料

修 課 特 殊 規 定 : 一 法 律 系 學 生 最 低 畢 業 學 分 128;101 學 年 度 修 讀 法 律 系 雙 主 修 學 生 應 修 畢 法 律 專 業 目 64 學 分 ( 限 修 習 本 校 法 律 系 開 設 課 程, 不 得 以 原 學 系 或 外 校 課 程 抵 免 -

《數學奠基活動模組示例》

目 錄

PROSPECT EXPLORATION 壹 前 言 第 9 卷 第 2 期 中 華 民 國 100 年 2 月

進 入 系 統 1. 請 於 首 頁 右 側 使 用 者 登 入 輸 入 帳 號 密 碼 驗 證 碼 後, 點 選 登 入 進 入 系 統 2. 直 接 點 選 右 側 的 進 入 系 統, 直 接 進 入 題 目 檢 索 頁 面 直 接 進 入 系 統 後, 您 仍 可 瀏 覽 選 擇 您 所 需

Microsoft Word - 附件_table

55202-er-ch03.doc

第 2 頁 理 由 現 行 計 劃 3. 現 時, 學 生 如 欲 在 考 試 費 減 免 計 劃 下 申 領 考 試 費 減 免, 必 須 符 合 以 下 資 格 - (a) 首 次 應 考 香 港 中 學 會 考 ( 下 稱 會 考 ) 1 或 香 港 高 級 程 度 會 考 ( 下 稱 高 考

(Microsoft Word - \246\250\301Z\272\336\262z.doc)

行政院金融監督管理委員會全球資訊網-行政院金融監督管理委員會


2016年中國語文科試卷三聆聽及綜合能力考核樣本試卷示例及說明

如何正確使用自己所擁有的正版音樂光碟?

一 業 務 內 容 本 公 司 依 郵 政 法 第 5 條 得 經 營 下 列 業 務 : 單 位 : 新 臺 幣 千 元,% ,486,746, ,318,734, ,039,301,167

(Microsoft Word - IAS26_0106_\270\352\270\333__\272\364\255\266.doc)

(Microsoft Word \245\277\244\361\273P\244\317\244\361.doc)

龍騰100-B5-習作-CH3.doc

格 成 績 證 明 第 六 條 第 七 條 本 系 大 四 課 程 中 規 劃 日 本 韓 國 越 南 專 題 研 究, 學 生 需 於 大 四 時 修 習 該 課 程, 並 於 規 定 期 間 內 提 出 專 題 報 告, 取 得 合 格 成 績 證 明 本 系 規 定 學 生 畢 業 時 需 取

Microsoft PowerPoint - 104年說明會簡報-final-0923.ppt [相容模式]

教育實習問與答:

Microsoft Word - 立法會十四題附件.doc

Microsoft Word - LongCard_Promo_2013_FAQ_tc_pdf.doc

75 叁 積 木 遊 戲 的 教 學 功 能 一 促 進 體 能 發 展 二 發 展 社 會 技 巧 Ramsey 1991 Beaty 1995 ( ) ( ) ( ) 三 學 習 情 緒 處 理 國 教 之 友 第 59 卷 第 3 期 19

行政院金融監督管理委員會全球資訊網-行政院金融監督管理委員會

基 金 配 息 資 訊 聯 博 境 外 基 金 2016 AA/AD/AT/BA/BD/BT 月 份 除 息 日 2016 年 01 月 01 月 28 日 01 月 29 日 2016 年 02 月 02 月 26 日 02 月 29 日 2016 年 03 月 03 月 30 日 03 月 31

LSM Chinese

1. 安 裝 1.1 手 機 端 安 裝 檔 (cab 檔 ) 請 您 將 下 載 的 cab 檔 案 複 製 到 手 機 內 任 一 資 料 夾, 在 手 機 上 點 擊 cab 檔 案 後 即 可 開 始 安 裝 點 擊 本 檔 案 即 可 開 始 安 裝 請 於 您 的 手 機 上 繼 續 安

答客問

Microsoft Word - 全華Ch2-05.doc

廿一世紀集居環境規劃與建築型態塑造之研究

文 ( 一 ) 閱 讀 理 解 英 語 數 學 社 會 自 然 及 國 文 ( 二 ) 語 文 表 達 等 各 科 此 外 嘉 義 區 則 另 外 單 獨 辦 理 測 驗 五 專 亦 有 辦 理 特 色 招 生 考 試 分 發 入 學, 與 高 中 高 職 分 開 辦 理, 但 成 績 同 樣 採

目 錄 引 言 P 署 長 陳 鴻 祥 先 生 講 辭 P.6 10 副 署 長 營 運 服 務 吳 啟 明 先 生 講 辭 穩 步 求 進 P An Invisible Man Meets the Mummy 副 署 長 規 管 服 務 陳 帆

心 五 四 運 動 二 十 一 世 紀 的 生 活 主 張

Transcription:

第 10 章 物 件 導 向 之 道 著 作 權 所 有 旗 標 出 版 股 份 有 限 公 司

前 言 在 第 1 章 中 我 們 己 介 紹 過 " 抽 象 化 " " 模 組 化 " 以 及 物 件 導 向 的 原 理 了, 本 章 則 將 繼 續 為 讀 者 說 明 物 件 導 向 的 三 大 特 性 : 封 裝 繼 承 和 多 面 性 (Polymorphism) 本 章 只 做 原 理 性 的 說 明, 其 目 的 是 要 在 深 入 探 討 這 些 主 題 前, 先 讓 讀 者 能 有 一 個 全 盤 的 了 解 至 於 較 詳 細 的 使 用 方 法, 則 將 在 後 面 的 幾 章 中 再 做 介 紹

本 章 提 要 封 裝 繼 承 多 面 性

封 裝 封 裝 (Encapsulation) 乃 是 " 資 訊 隱 藏 " 的 意 思, 也 就 是 將 " 不 足 為 外 人 道 " 的 資 料 和 功 能 包 裝 起 來, 以 免 受 到 外 界 程 式 有 意 或 無 意 的 干 擾 經 由 封 裝, 我 們 可 以 將 程 式 用 模 組 化 的 方 式, 製 作 成 一 個 個 可 以 任 意 組 合 或 重 複 使 用 的 " 軟 體 IC"

封 裝 當 然, 一 個 完 整 的 軟 體 IC 除 了 內 部 封 裝 起 來 的 資 料 或 功 能 外, 還 必 須 提 供 用 來 與 外 界 溝 通 的 介 面 ; 因 此, 以 一 個 程 式 模 組 來 說, 其 變 數 與 函 式 必 須 分 為 私 有 和 公 開 二 部 份, 私 有 的 部 份 只 能 在 模 組 內 取 用, 而 公 開 部 份 則 可 讓 其 他 外 界 的 模 組 來 取 用

封 裝 在 第 8 章 中 所 介 紹 的 變 數 函 式 儲 存 等 級, 就 是 用 來 畫 分 私 有 或 公 開 的 最 佳 利 器 先 讓 我 們 來 看 看 如 何 以 傳 統 程 序 導 向 的 方 式 來 設 計 封 裝 良 好 的 模 組 以 C 語 言 的 設 計 角 度 來 看, 一 般 均 是 以 檔 案 來 做 為 模 組 化 的 單 位, 並 以 關 鍵 字 static 將 資 料 或 函 式 加 以 封 裝, 其 檔 案 模 組 的 內 容 大 致 像 如 下 的 安 排 :

封 裝

封 裝 舉 一 個 整 數 堆 疊 的 例 子 來 說, 我 們 就 可 以 很 方 便 地 將 整 數 存 入 堆 疊 或 由 堆 疊 取 出 了 例 如 :

封 裝

封 裝

封 裝

封 裝 堆 疊 內 的 資 料 及 運 作 方 法 則 完 全 封 裝 在 模 組 中, 我 們 不 必 也 不 能 去 加 以 干 涉 然 而, 這 樣 的 寫 法 有 二 個 限 制 : 一 是 只 能 存 取 整 數 資 料, 二 是 只 能 有 一 個 堆 疊 可 用 第 一 個 限 制 可 用 C++ 的 template 來 克 服, 這 部 份 我 們 不 擬 多 說 至 於 第 二 個 限 制, 則 可 用 動 態 記 憶 體 配 置 的 方 式 來 解 決 :

封 裝 我 們 可 以 多 加 一 個 函 式 NewStack(), 這 個 函 式 會 配 置 一 塊 記 憶 體 來 存 放 有 關 該 堆 疊 的 資 訊 ( 稱 之 為 Handle), 然 後 將 Handle 的 位 址 以 指 位 器 傳 回, 當 我 們 需 要 一 個 新 的 堆 疊 時, 就 呼 叫 NewStack(), 並 將 傳 回 的 Handle 指 位 器 存 起 來, 而 在 往 後 使 用 push() 或 pop() 時, 則 一 併 將 Handle 用 參 數 方 式 傳 過 去, 以 便 push() 或 pop() 用 來 找 出 正 確 的 堆 疊 去 運 作 請 看 下 面 的 程 式 :

封 裝

封 裝

封 裝

封 裝

封 裝

封 裝 在 上 例 的 main() 中 一 共 建 立 了 二 個 堆 疊, 每 個 堆 疊 均 有 一 Handle 指 位 器 為 代 表, 我 們 可 以 把 它 想 成 是 堆 疊 的 名 稱 或 識 別 ID, 以 便 用 來 指 明 要 操 作 哪 一 個 堆 疊 程 序 導 向 的 設 計 方 式 是 以 " 功 能 " 為 主, 所 以 當 我 們 需 要 堆 疊 功 能 時, 就 設 計 一 個 具 有 堆 疊 功 能 的 模 組 來 滿 足 需 求

封 裝 而 物 件 導 向 設 計 則 是 以 " 物 件 " 為 主, 所 以 它 會 把 堆 疊 當 成 物 件 來 看, 其 解 決 方 案 是 先 設 計 出 一 個 " 堆 疊 類 別 " ( 新 的 型 別 ), 然 後 可 用 這 個 類 別 來 產 生 物 件, 而 每 一 個 物 件 就 是 一 個 可 用 的 堆 疊

封 裝 一 旦 設 計 好 類 別 後, 我 們 便 可 用 下 面 的 方 法 來 使 用 :

封 裝 這 樣 的 表 達 方 式 是 不 是 比 以 前 用 Handle 來 運 作 要 好 的 多 了 呢? 現 在 讓 我 們 來 看 看 C++ 是 如 何 以 類 別 來 製 做 封 裝 模 組 :

封 裝

封 裝 以 class 來 定 義 類 別, 其 內 的 成 員 預 設 為 私 有 屬 性 (private) 若 用 struct 來 定 義 類 別, 則 可 以 寫 成 如 下 的 方 式 :

封 裝

封 裝 用 類 別 來 做 為 封 裝 模 組 的 單 位, 不 僅 讓 人 一 目 瞭 然, 而 且 也 不 會 被 局 限 在 一 個 檔 案 之 中 ( 函 式 成 員 的 定 義 可 以 放 在 不 同 的 檔 案 之 中 ) C++ 的 類 別 是 一 個 多 功 能 的 機 構, 也 是 物 件 導 向 的 靈 魂 所 在, 不 僅 可 以 支 援 完 整 的 封 裝, 更 具 有 繼 承 多 面 性 ( 動 態 繫 結 ) 的 功 能, 使 我 們 在 設 計 程 式 時 更 加 的 方 便 和 靈 活

繼 承 C++ 的 繼 承 (Inheritance) 可 以 讓 我 們 用 已 建 立 好 的 類 別 來 產 生 新 的 類 別, 這 種 方 式 稱 為 類 別 衍 生 (Class derivation) 在 衍 生 的 同 時, 我 們 也 可 以 對 原 有 的 功 能 加 以 調 整, 或 再 加 入 一 些 新 功 能, 以 符 合 新 的 需 求

繼 承

繼 承 當 我 們 設 計 好 一 個 類 別 模 組 後, 便 希 望 可 以 拿 來 一 再 地 使 用, 然 而, 常 會 發 生 的 情 況 是, 我 們 所 要 的 新 模 組 雖 然 和 舊 模 組 很 相 似, 但 卻 又 不 是 完 全 相 同, 所 以 無 法 直 接 套 用

繼 承 如 果 是 程 序 導 向 的 程 式, 那 麼 就 得 將 原 模 組 copy 一 份 然 後 再 加 以 修 改 成 新 的 版 本, 但 這 樣 做 不 僅 浪 費 時 間, 而 且 會 產 生 許 多 重 複 的 程 式 碼, 當 程 式 越 來 越 大 版 本 越 來 越 多 時, 在 維 護 上 將 變 得 相 當 困 難, 這 就 是 目 前 大 型 軟 體 所 普 遍 面 臨 的 困 境 物 件 導 向 的 設 計 則 完 全 解 決 了 這 個 問 題, 而 其 關 鍵 就 在 於 繼 承 的 特 性

繼 承 經 由 繼 承 所 產 生 的 新 類 別, 因 為 可 分 享 舊 類 別 的 特 性 ( 資 料 和 程 式 碼 ), 所 以 只 有 新 增 或 有 變 動 的 功 能 需 要 重 寫, 其 他 的 部 份 則 可 完 全 共 用 如 此 一 來, 我 們 甚 至 不 必 知 道 舊 類 別 內 的 運 作 情 形, 便 可 以 發 展 出 更 多 功 能 的 新 類 別 來, 這 在 使 用 別 人 所 撰 寫 的 類 別 時 特 別 有 用, 因 為 別 人 寫 的 程 式 總 是 較 難 了 解, 而 且 我 們 也 不 一 定 有 其 原 始 程 式 碼

繼 承 另 外, 一 般 C++ 的 compiler 都 有 提 供 一 個 功 能 強 大 的 類 別 庫, 其 內 存 放 著 許 多 已 編 譯 好 的 類 別, 這 時 雖 然 我 們 無 法 得 知 其 內 部 的 運 作, 但 一 樣 可 用 繼 承 的 方 式 來 建 立 符 合 需 求 的 新 類 別

繼 承

繼 承 由 此 觀 之, 繼 承 的 最 大 好 處 是 大 幅 提 高 了 程 式 的 易 擴 充 性 與 可 重 用 性, 除 了 可 以 節 省 大 量 的 人 力 及 時 間 外, 同 時 在 維 護 時 也 較 為 容 易 C++ 不 僅 允 許 我 們 做 一 對 一 的 繼 承, 也 可 做 多 對 一 一 對 多 的 繼 承, 也 就 是 說, 一 個 父 類 別 可 衍 生 出 多 個 子 類 別, 而 一 個 子 類 別 也 可 繼 承 多 個 父 類 別 的 特 性

繼 承 此 外, 新 產 生 的 類 別 又 可 再 衍 生 出 更 多 的 類 別, 因 此 經 由 繼 承, 可 形 成 一 個 像 族 譜 般 的 類 別 階 層 (Class hierarchy) 下 面 是 一 個 繼 承 的 例 子 :

繼 承 物 件 導 向 設 計 其 實 就 是 要 模 仿 真 實 世 界 的 事 物, 而 在 真 實 世 界 中 這 種 繼 承 的 關 係 比 比 皆 是, 例 如 : 客 車 貨 車 機 車 等 均 是 車 子 的 一 種, 車 子 又 為 機 械 的 一 種 兒 子 的 特 性 遺 傳 自 父 母, 而 父 母 的 特 性 又 遺 傳 自 祖 父 母 生 物 可 分 為 動 物 和 植 物, 動 物 又 可 分 哺 乳 類 和 爬 蟲 類, 哺 乳 類 又 包 括 人 狗 牛 豬 等

繼 承 當 我 們 在 設 計 這 些 物 件 的 類 別 時, 便 可 以 將 它 們 之 間 繼 承 的 特 性 加 入 程 式 之 中 比 如 說, 我 們 想 設 計 一 個 " 人 " 的 類 別, 便 可 先 設 計 " 動 物 類 別 ", 然 後 再 從 這 個 類 別 衍 生 出 " 哺 乳 類 類 別 ", 最 後 再 由 " 哺 乳 類 類 別 " 衍 生 出 " 人 的 類 別 ":

繼 承 這 樣 做 的 好 處 是, 當 我 們 又 想 建 立 一 個 " 猴 子 " 的 類 別 時, 便 可 直 接 由 哺 乳 類 中 衍 生 出 來 即 可, 而 不 必 從 無 到 有 地 重 新 設 計 當 我 們 稍 後 發 現 在 動 物 的 部 份 應 再 加 上 或 修 正 一 些 特 性 時, 也 只 須 更 動 " 動 物 類 別 " 的 部 份 就 好 了, 哺 乳 人 類 和 猴 子 類 別 則 會 自 動 繼 承 新 的 特 性 而 不 必 做 任 何 更 動

繼 承 被 繼 承 的 類 別 ( 如 動 物 ) 我 們 稱 為 基 本 類 別 (Base class), 新 衍 生 出 的 類 別 ( 如 哺 乳 類 ) 則 稱 為 衍 生 類 別 (Derived class) 或 子 類 別 (Subclass) 而 衍 生 類 別 又 可 以 做 為 基 本 類 別, 再 產 生 更 多 新 的 衍 生 類 別 ( 如 人 類 )

繼 承 事 實 上 當 B 繼 承 A 時 ( 由 A 衍 生 出 B), 就 是 我 們 口 語 常 用 的 B 是 一 種 A, 而 且..., 舉 例 來 說 : 人 是 一 種 哺 乳 動 物, 而 且 人 會 說 話 較 聰 明... 等 哺 乳 動 物 是 一 種 動 物, 而 且 它 會 哺 育 幼 兒...

繼 承 是 一 種... 就 是 指 共 通 的 部 份, 而 而 且... 則 指 出 特 殊 化 的 部 份 ; 特 殊 化 部 份 可 能 是 新 增 的 功 能, 也 可 能 是 修 改 原 有 的 功 能 在 類 別 階 層 中, 越 高 的 階 層 其 共 通 性 越 強, 而 越 低 的 階 層 則 特 殊 化 的 部 份 較 多, 這 正 符 合 了 我 們 在 第 1 章 中 所 介 紹 抽 象 化 層 次 的 概 念

多 面 性 多 面 性 (Polymorphism) 是 著 重 在 " 表 達 的 一 致 性 ", 當 我 們 要 執 行 某 項 功 能 時, 可 以 用 同 樣 的 函 式 名 稱 ( 或 算 符 ) 來 呼 叫, 然 後 系 統 會 依 照 資 料 的 種 類 來 選 取 適 當 的 處 理 方 式 多 面 性 可 分 為 靜 態 和 動 態 二 種, 我 們 一 般 所 說 物 件 導 向 的 第 三 個 特 性, 乃 是 指 動 態 的 多 面 性

多 面 性 靜 態 的 多 面 性 (Static polymorphism) 就 是 我 們 在 前 面 曾 介 紹 過 的 overloading, 由 於 overloading 是 在 編 譯 聯 結 時 就 已 決 定 要 呼 叫 那 一 個 同 名 函 式 了, 所 以 我 們 稱 為 " 靜 態 " 的 多 面 性 其 實 overloading 只 是 將 函 式 名 稱 加 上 參 數 的 簽 名, 來 做 為 實 際 的 函 式 名 稱, 所 以 並 不 算 是 真 正 的 多 面 性, 這 就 是 為 什 麼 overload 函 式 的 " 名 稱 加 簽 名 " 不 可 以 重 複 的 原 因

多 面 性 動 態 的 多 面 性 則 是 函 式 名 稱 加 簽 名 完 全 一 樣, 而 且 是 在 程 式 執 行 時 才 依 資 料 的 種 類 來 決 定 要 使 用 哪 一 個 同 名 函 式, 我 們 稱 這 樣 的 特 性 為 動 態 繫 結 (Dynamic binding) 注 意, 聯 結 (Linking) 是 指 在 執 行 之 前 即 已 將 呼 叫 與 函 式 結 合 了, 而 動 態 繫 結 則 是 在 程 式 執 行 時 才 依 資 料 的 種 類 來 結 合 正 確 的 函 式

多 面 性 為 什 麼 要 有 動 態 繫 結 呢? 這 完 全 是 由 類 別 的 繼 承 特 性 所 產 生 的 需 求 因 為 繼 承 就 是 " 是 一 種... " 的 關 係, 所 以 我 們 說 牛 豬 狗 都 是 一 種 動 物, 既 然 都 是 動 物, 我 們 當 然 也 可 以 只 把 它 們 當 成 動 物 來 看 待, 而 不 必 去 分 辨 詳 細 的 種 類 因 此, 相 近 的 類 別 間 也 可 以 做 到 " 表 達 的 一 致 性 ":

多 面 性 然 而, 雖 然 我 們 可 以 只 將 它 們 當 成 動 物 來 看 待, 但 實 際 上 它 們 卻 是 不 一 樣 的 動 物, 如 果 我 們 下 一 個 " 叫 " 的 命 令, 那 麼 每 種 動 物 的 叫 聲 都 不 相 同

多 面 性 為 了 要 能 模 擬 這 種 真 實 世 界 的 狀 況, C++ 提 供 了 動 態 繫 結 的 功 能, 可 以 真 正 將 某 些 操 作 法 與 物 件 結 合 在 一 起, 使 每 種 物 件 都 可 有 自 已 與 眾 不 同 的 特 性 舉 個 實 例 來 說, 假 設 我 們 已 定 義 好 了 Shape 類 別, 並 由 此 衍 生 出 Circle,Rectangle, Triangle 三 個 圖 形 類 別 :

多 面 性

多 面 性 為 了 要 做 到 表 達 的 一 致 性, 我 們 可 以 透 過 指 位 器 來 達 成, 例 如 :

多 面 性 由 於 圓 形 乃 是 圖 形 的 一 種, 所 以 圖 形 類 別 的 指 位 器 當 然 可 以 存 放 圓 形 物 件 的 位 址 ; 矩 形 三 角 形 也 是 一 樣 的 原 理 然 而, 當 我 們 要 將 圖 形 繪 出 時, 每 一 種 圖 形 的 繪 出 方 法 卻 不 相 同, 請 考 慮 下 面 的 情 形 :

多 面 性 此 時 因 為 系 統 根 本 不 知 道 每 一 個 sh 元 素 是 指 向 何 種 圖 形 ( 我 們 隨 時 可 以 更 改 sh[i] 內 的 值 ), 所 以 在 編 譯 時 無 法 事 先 決 定 要 使 用 哪 一 個 圖 形 的 draw(), 此 時 只 好 在 實 際 執 行 時, 才 用 " 動 態 繫 結 " 來 找 出 正 確 的 draw() 去 呼 叫 動 態 繫 結 必 須 透 過 虛 擬 函 式 (Virture function) 來 達 成, 有 關 虛 擬 函 式 的 使 用 方 法 和 原 理, 我 們 會 在 第 15 章 中 為 您 做 深 入 的 介 紹