資源描述:
《zhoulz-繼承與多態(tài)-2015》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、118七月2021第5章繼承與多態(tài)218七月2021繼承性與多態(tài)性是面向?qū)ο蟪绦蛟O(shè)計(jì)的另外兩個(gè)重要特性。在Java語言中,提供了能夠?qū)崿F(xiàn)繼承性與多態(tài)性的完備技術(shù),這使得更多的人們?cè)敢鈱ava作為軟件開發(fā)語言,進(jìn)而充分地施展面向?qū)ο蟪橄笮浴⒎庋b性、繼承性與多態(tài)性的優(yōu)勢(shì),為構(gòu)筑新時(shí)代的軟件開發(fā)理念奠定了堅(jiān)固基礎(chǔ)。318七月20217.1類的繼承繼承機(jī)制是面向?qū)ο蟪绦蛟O(shè)計(jì)不可缺少的關(guān)鍵概念,是實(shí)現(xiàn)軟件可重用的根基,是提高軟件系統(tǒng)的可擴(kuò)展性與可維護(hù)性的主要途徑。繼承是一種由已有的類創(chuàng)建新類的機(jī)制。所謂繼承是指一個(gè)類的定義可以基于另外一個(gè)已經(jīng)存
2、在的類,即子類基于父類,從而實(shí)現(xiàn)父類代碼的重用。由繼承而得到的類稱為子類,被繼承的類稱為父類或超類。Java不支持多重繼承,子類只能有一個(gè)父類。418七月2021繼承關(guān)系的UML圖形符號(hào)表示法兩個(gè)類的繼承關(guān)系可以用“isa”表示,即子類是父類所描述的實(shí)體集中的子集。也就是說,父類涵蓋更加共性的特征,更加具有一般性,子類增加的內(nèi)容更加具有個(gè)性,是一般性之外的特殊內(nèi)容,因此,又可以說,這種類的繼承關(guān)系充分地反映了“一般與特殊”的關(guān)系。518七月20217.1.1定義子類在Java語言中,定義子類的語法格式為:[修飾符]class子類名ext
3、ends父類名{子類體}其中,“修飾符”是子類的訪問特性說明符等;class為定義類的關(guān)鍵字,“子類名”是子類的名稱;extends是關(guān)鍵字“子類體”是子類在繼承父類內(nèi)容的基礎(chǔ)上,添加的特有內(nèi)容。618七月2021EmployeeClass類與ManagerClass類的關(guān)系圖特殊津貼718七月2021//filename:EmployeeClass.javapublicclassEmployeeClass{//雇員類privateStringname;//姓名privatedoublesalary;//工資privateStringd
4、epartment;//部門publicEmployeeClass(){...}publicEmployeeClass(Stringname,doublesalary,Stringdepartment){...}publicvoidsetName(Stringname){...}publicvoidsetSalary(doublesalary){...}publicvoidsetDepartment(Stringdepartment){...}publicStringgetName(){...}publicdoublegetSalary
5、(){...}publicStringgetDeparyment(){...}publicStringtoString(){...}}818七月2021publicManagerClassextendsEmployeeClass{//經(jīng)理類privatedoublespecial;//特殊津貼publicManagerClass(){...}publicManagerClass(Stringname,doublesalary,Stringdepartment,doublespecial){...}publicvoidsetSpecial
6、(doublespecial){...}publicdoublegetSpecial(){...}publicStringtoString(){...}}918七月2021舉例:設(shè)計(jì)與幾何圖元有關(guān)的類。問題分析:幾何圖元是指可以繪制的基本幾何圖形,例如矩形、正方形、圓形、多邊形等。鑒于篇幅的考慮,這里只考慮矩形與正方形。假設(shè)任何幾何圖元都有顏色與位置兩個(gè)屬性,因此應(yīng)該將這些共有特性定義在一個(gè)類中,它是頂層類;而矩形還應(yīng)該有長(zhǎng)、寬兩個(gè)屬性,由于矩形是一種幾何圖元,所以它自然應(yīng)該擁有幾何圖元的共有特性,因此可以將矩形類設(shè)計(jì)為幾何圖元類的子類
7、;因?yàn)檎叫问且环N特殊的矩形,它的特殊性在于長(zhǎng)與寬相等,所以應(yīng)該將正方形類設(shè)計(jì)為矩形的子類。1018七月2021ShapeClass類、RectangleClass類與SquareClass類之間的關(guān)系類圖ShapeClass類是幾何圖元的通用類;矩形是一種特定的幾何圖元,因此,RectangleClass類應(yīng)該是ShapeClass的子類;正方形是一種特殊的矩形,所以SquareClass類是RectangleClass類的子類。1118七月20211218七月2021//filename:ShapeClass.javaimportj
8、ava.util.*;publicclassShapeClass{//幾何圖元類privateColorClasscolor;//顏色屬性privatePointplace;//位置屬性publicShap