Java程序設(shè)計-7-繼承和接口

Java程序設(shè)計-7-繼承和接口

ID:37606379

大小:873.00 KB

頁數(shù):62頁

時間:2019-05-13

Java程序設(shè)計-7-繼承和接口_第1頁
Java程序設(shè)計-7-繼承和接口_第2頁
Java程序設(shè)計-7-繼承和接口_第3頁
Java程序設(shè)計-7-繼承和接口_第4頁
Java程序設(shè)計-7-繼承和接口_第5頁
資源描述:

《Java程序設(shè)計-7-繼承和接口》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。

1、Java程序設(shè)計第七章繼承、接口學習目標理解繼承的含義以及類的層次關(guān)系理解抽象類和具體類的區(qū)別理解多態(tài)的含義以及如何實現(xiàn)多態(tài)理解類型系統(tǒng)理解接口以及實現(xiàn)接口理解接口和抽象的區(qū)別理解基本的設(shè)計模式和實現(xiàn)掌握Object類,掌握主要方法的作用理解對象相等性的判斷機制繼承是自然界的一種普遍現(xiàn)象。作為面向?qū)ο蠹夹g(shù)的實現(xiàn),Java提供了通過繼承創(chuàng)建新類來實現(xiàn)類的重用,在清晰的描述問題域的層次體系時,繼承有著重要的作用。作為系統(tǒng)建模的一種主要原則,理解繼承的關(guān)鍵在于能夠認識抽象的作用。本質(zhì)上接口是一種設(shè)計模式,它和繼承

2、還有著一定的區(qū)別,在開發(fā)中它的使用更加頻繁。作為本章的另外一個重要內(nèi)容,類型的轉(zhuǎn)換機制也是需要認真領(lǐng)會的。7.1類的層次結(jié)構(gòu)層次是我們生活中經(jīng)??梢姷囊环N結(jié)構(gòu)。例如一個企業(yè)通常有著明晰的組織結(jié)構(gòu),除了這種組織結(jié)構(gòu)外,另外一種典型的層次結(jié)構(gòu)就是分類結(jié)構(gòu)了,例如有關(guān)生物的分類:在Java語言中,所有的類都有著嚴格的層次體系,除了根類,每個類都有著唯一的超類7.2創(chuàng)建現(xiàn)有類的子類從Java編程語言的角度來看,繼承發(fā)生在一個被稱為“超類”(或者稱為“基類”superclass)與一個被稱為“子類”(subclass

3、)之間,用extends來實現(xiàn),如:classChildClassextendsSuperClass{//...}這里表示子類ChildClass派生于超類SuperClass。準確的說,我們創(chuàng)建了屬于SuperClass類的一個新的子類型。在發(fā)生繼承關(guān)系時,一個子類對于超類的繼承表現(xiàn)在以下幾個方面:繼承超類的屬性繼承超類的方法使用超類的構(gòu)造函數(shù)1.繼承超類的屬性一個子類繼承超類的屬性之后能否使用取決于超類屬性的訪問屬性以及子類和超類所屬包的關(guān)系,圖5-3說明了這個問題。根據(jù)繼承規(guī)則,如圖7-3中顯示的那樣

4、:當超類和子類在同一包中時,子類可以繼承(既可以直接使用)超類中除private修飾的一切屬性而當超類和子類不在同一個包內(nèi)時,子類除了超類中用private修飾的屬性不能繼承外,超類中那些沒有明確訪問范圍的屬性也不能被繼承。所以,當明確一個類需要作為基類來使用時,考慮清楚每一個數(shù)據(jù)成員的訪問范圍是很重要的。2.繼承超類的方法子類對于超類方法(不包括超類的構(gòu)造函數(shù))的繼承規(guī)則和上述的屬性繼承規(guī)則一樣。在超類中被說明為private的方法不能被子類繼承使用,那些沒有說明訪問范圍的方法,只有當子類和超類在一個包內(nèi)

5、才可以被繼承使用,除此之外,超類的其它方法都可以被子類繼承使用。7.2.2使用super訪問超類的構(gòu)造方法使用超類的構(gòu)造方法構(gòu)造方法不同于一般的方法,子類無法使用超類的構(gòu)造方法作為自己的構(gòu)造方法,子類必須有自己的構(gòu)造方法,但可以使用父類的構(gòu)造方法,形式是。super(x,…);調(diào)用父類構(gòu)造方法時應(yīng)遵循的原則:只能在子類中調(diào)用父類的構(gòu)造方法,而且必須是第一條語句,即不要在父類構(gòu)造方法前放任何子類構(gòu)造方法代碼.調(diào)用父類構(gòu)造方法時,必須使用super(…)。如果父類沒有顯式聲明構(gòu)造方法,則子類中可以不用調(diào)用父類構(gòu)

6、造方法,但也可調(diào)用父類默認的無參數(shù)的構(gòu)造方法,形式如super()一個超類publicclassStudent{Stringstudentid;//學生編號Stringname;//學生姓名Stringspeciality;//專業(yè)publicStudent(Stringstudentid,Stringname){this.studentid=studentid;this.name=name;}//分配專業(yè)publicvoidassignSpeciality(Stringspeciality){this.s

7、peciality=speciality;}//定義該對象的字符串表示publicStringtoString(){returnstudentid+","+name+","+speciality;}}一個繼承于Student的子類publicclassPostgraduateextendsStudent{Stringorientation;//增加了研究方向publicPostgraduate(Stringstudentid,Stringname,Stringorientation){super(stude

8、ntid,name);//調(diào)用超類Student的構(gòu)造函數(shù)this.orientation=orientation;}publicvoidchangeOrientation(StringnweOrientation){//變更研究方向this.orientation=nweOrientation;}publicstaticvoidmain(String[]args0){Postgraduatestudent=ne

當前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預(yù)覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權(quán)有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡(luò)波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。