继承与多重继承类别架构.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
继承与多重继承类别架构

繼承與多重繼承-類別架構 類別的繼承-一般關係: 繼承是宣告的類別繼承現存類別的部份或全部的成員資料和方法 , 新增額外的成員資料和方法或覆寫和隱藏繼承類別的方法 類別架構 繼承不只可以多個子類別繼承同一個父類別 , 而且還可以擁有很多層的繼承 上圖的Truck , Car和Mororeycle類別是兄弟類別 , 當然我們可以繼續繼承類別Car , 類別SportsCar和Jeep也是類別Vehicle的子類別 , 不過並不是直接繼承子類別 類別的繼承 父類別Vehicle定義車輛基本資料: class Vehicle { private int engineNo: private string name; private double price; public void setNumber(int no){….} public void setName(String n){….} public void serPrice(double p){….} public void printVehicle(){….} } 宣告類別繼承自存在的類別 宣告語法 Class 子類別名稱 extends 父類別名稱 { ……./ / 額外的成員資料與方法 } 以car子類別宣告為例: class Car exends Vehicle { private int doors; public Car(String name,int no,double price,int doors){…} Public void printCar(){…} } (範例:Ch9_1_2) UML類別圖: 子類別可繼承父類別所有成員資料和方法但有一些限制 子類別不能存取父類別宣告成private的成員資料和方法 父類別的建構子不屬於類別的成員所以子類別並不能繼承父類別的建購子 覆寫和隱藏父類別的方法 如果繼承父類別方法不符合需求,在子類別可以宣告同名,同參數列和傳回值的方法來取代父類別繼承的方法,稱為覆寫 不過物件的副本方法並不能取代宣告成static的類別方法來取帶它,稱為隠藏 在父類別Vehicle擁有1個類別方法和成員方法需要被隱藏和覆寫 Class Vehicle // 父類別 {….. Public static void printType(){….} ….. Public void printVehicle(){….} } Class Car extend Vehicle //子類別 {….. Public static void printType(){…..} //宣告了與父類別同名 …… Public void printVehicle(){…} } 在程式碼呼叫Car物件的副本和類別方法時,是呼叫子類別Car的方法,而不是父類別的方法 上述類別架構可以看出在父與子 類別圖擁有同名的類別和成員方法 (範例Ch9_1_3) 隱藏父類別的成員資料 在子類別可以隱藏父類別成員資料的變數,只需變數的名稱相同,就算變數的資料型態不同也一樣可以隱藏 例如:父類別成員變數engineNo宣告成public的整數型態 class Vehicle //父類別 { public int engineNo; …………. } 子類別Car的成員變數engineNo是private的字串物件,而不再是整數int,原來public的engineNo成員變數被隱藏起來 class car extend Vehicle //子類別 { private String engineNo; ……….. } (範例Ch9_1_4) 使用父類別的建構子 因為子類別並不會繼承父類別的建構子,所以在子類別只能使用super關鍵字呼叫父類別的建構子,同理,在子類別覆寫的方法和隱藏的成員變數,也可以使用super來呼叫和存取 例如:使父類別擁有建構子 Class Vehicle { public static int count; public int engineNo; public String name; public Vehicle(int name, int no){…..} public void printVehicle() {….} } class Car extendsVehicle { private String name; private int engineNo; private int doors; public Car(String name, int no,int doors)

文档评论(0)

sunshaoying + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档