- 1、本文档共44页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
抽象类别与介面
第 章
12
抽象類別與介面
著作權所有© 旗標出版股份有限公司
本章重點
12-1 抽象類別(Abstract Class)
12-2 介面( Interface)
12-3 介面的繼承
12-4 綜合演練
2
12 - 1 抽象類別(Abstract Class)
回頭看看上一章中提到多層的繼承時, 所與的
圖形類別範例, 在Shape 、Circle 、Cylinder 、
Rectangle 這幾個類別中, Shape 這個類別其
實並未被主程式用到, 而其存在的目的只是為
了讓整個繼承結構更完善。
實際上Shape 只是一個抽象的概念, 程式中並
不會有Shape 的物件, 而只會使用它的衍生類
別如Circle 、Rectangle 等, 來建立物件。
因此, 我們需要一種方法, 可以讓類別的使用者
知道, Shape 這個類別並不能用來產生物件。
3
抽象類別(Abstract Class)
12-1-1 甚麼是抽象類別?
12-1-2 抽象方法(Abstract Method)
12-1-3 抽象類別、抽象方法與繼承關係
4
12-1-1 甚麼是抽象類別?
為了解決上述的問題, Java 提供抽象類別
(Abstract Class) 的機制, 其用途即是讓我們
標註某個類別僅是抽象的概念, 不應該用以產
生物件。
只要在類別的名稱之前加上abstract存取控制
字符, 該類別就會成為抽象類別, Java編譯器將
會禁止任何產生此物件的動作。
舉例來說, 在上述的範例中, Shape 類別就很適
合更改為抽象類別, 因為這此類別不代表具體
的物件, 真正的物件必須由其子類別產生。因
此, 程式就可以改成這樣:
5
甚麼是抽象類別?
由於抽象類別不能建立物件, 因此只要程式中
有任何地方想要建立抽象類別的物件, 在編譯
時, 就會出現錯誤, 例如以下的範例:
6
甚麼是抽象類別?
7
甚麼是抽象類別?
如上所示, 一旦在類別定義前加上abstract 將
其宣告為抽象類別後, 在程式中要建立該類別
的物件就會被視為錯誤。
8
12-1-2 抽象方法
(Abstract Method)
同樣的道理, 在上一章所舉的計算地價的程式
範例中, Land 類別也可視為是一個抽象的概念,
表示某種形狀的土地, 真正能用來計算地價時,
都是使用其子類別Circle 、Square 等所建立
的物件。因此, Land 也是標註為抽象類別的好
對象:
9
抽象方法(Abstr
文档评论(0)