資源描述:
《本章主要介紹以下幾個問題》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、本章主要介紹以下幾個問題1.Java語言的繼承2.Java語言的多態(tài)3.Java方法的重載4.構(gòu)造函數(shù)的繼承與重載5.Java語言的包6.Java語言的接口第五章繼承與多態(tài)5.1繼承1.繼承和多態(tài)是面向?qū)ο蟪绦蛟O計的兩個重要特點。繼承是面向?qū)ο蟪绦蛟O計方法的一個重要手段,通過繼承可以更有效地組織程序結(jié)構(gòu),明確類間的關系,充分利用已有的類來完成更復雜、更深入的開發(fā)。第五章繼承與多態(tài)5.1繼承2.當一個類擁有另一個類的所有數(shù)據(jù)和操作時,就稱這兩個類之間存在著繼承關系。被繼承的類稱為父類或超類,繼承了父類的所有數(shù)據(jù)和操作的類就為子類。3.一個父類可以同時擁有多個子類,此時父類
2、實際是所有子類的公共域和公共方法的集合;而每一個子類則是父類的特殊化,是對父類公共域和方法在功能、內(nèi)涵方面的擴展和延伸。第五章繼承與多態(tài)5.1繼承4.單重繼承是指任何一個類都只有一個單一的父類,其結(jié)構(gòu)可以用單純的樹狀結(jié)構(gòu)來表示;若一個類有一個以上的父類則稱為多重繼承。其結(jié)構(gòu)應以復雜的網(wǎng)狀結(jié)構(gòu)來表示。Java語言僅支持單重繼承。5.在面向?qū)ο蟮某绦蛟O計中,采用繼承的方式來組織設計系統(tǒng)中的類,可以提高程序的抽象程度,更接近人的思維方式,使程序結(jié)構(gòu)更清晰并降低編碼和維護的工作量。第五章繼承與多態(tài)5.2Java的繼承5.2.1派生子類1.Java語言中類的繼承是通過類定義的ex
3、tends關鍵字來實現(xiàn)的。即關鍵字指明了新定義類的父類,從而建立了兩個類之間的繼承關系,新定義的類是子類,它繼承了父類所有非private的屬性和方法作為自己的成員。2.分析圖5-1和例5-1電話卡類的繼承結(jié)構(gòu)。第五章繼承與多態(tài)5.2.2域的繼承與隱藏1.域的繼承是指子類可以繼承父類的所有非私有域。分析例5-1??梢姡焊割惖乃蟹撬接杏?qū)嶋H是各個子類所擁有的域的集合。2.子類重新定義一個與從父類那里繼承來的域變量完全相同的變量,稱為域的隱藏。第五章繼承與多態(tài)5.2.2域的繼承與隱藏3.域的隱藏是指子類擁有了兩個相同名字的變量,其中一個來自于父類,另一個由自己定義。4.當
4、子類執(zhí)行來繼承自父類的操作時,處理的是繼承父類的變量,而當子類執(zhí)行它自己定義的方法時,所操作的就是它自己定義的變量,而把繼承來自父類的變量“隱藏”起來。5.例5-2。第五章繼承與多態(tài)5.2.3方法的繼承與覆蓋1.方法的繼承:方法的繼承是指父類的非私有方法也可以被子類繼承。例5-2。2.方法的覆蓋:是指子類也可以重新定義與父類同名的方法,實現(xiàn)對父類的覆蓋。子類在重新定義父類已有的方法時應保持與父類完全相同的方法名、返回值和參數(shù)列表,否則就不是方法的覆蓋。第五章繼承與多態(tài)5.2.3方法的繼承與覆蓋3.方法的覆蓋與域的隱藏的區(qū)別在于:子類隱藏父類的域是使父類的域不可見,而父類
5、的同名域在子類的對象中仍然占有獨立的內(nèi)存空間;而子類方法對父類同名方法的覆蓋將清除父類方法在內(nèi)存所占用的空間,從而使父類方法在子類的對象中不復存在。4.例5-3。第五章繼承與多態(tài)5.2.4this和super1.Java系統(tǒng)默任:每個類都缺省地具有null、this和super三個域,可以在任意類中不加說明地直接使用這三個域。2.null代表“空”值,在定義一個對象但尚未為其開辟內(nèi)存空間時,可以指定這個對象為null。第五章繼承與多態(tài)5.2.4this和super3.this表示的是當前對象本身,它實際代表了當前對象的一個引用。一個對象可以有若干個引用,this只是其中
6、的一個。4.例5-4。5.super表示的是當前對象的直接父類對象,是對直接父類對象的引用。6.例5-5。第五章繼承與多態(tài)5.2.4this和super7.直接父類例如:A類派生出B類,B類派生出C類,那么B是C的“直接父類”;A是C的“祖先類”。同理:Number_PhoneCard類是D200_Card類的“直接父類”,PhoneCard類是D200_Card類的“祖先類”。第五章繼承與多態(tài)5.2.4this和super8.父類對象與子類對象的轉(zhuǎn)換(1)子類對象可以被視為是其父類的一個對象。(2)父類對象不能被當作是某一個子類的對象。第五章繼承與多態(tài)5.2.4thi
7、s和super8.父類對象與子類對象的轉(zhuǎn)換(3)如果一個方法的形式參數(shù)定義的是父類對象,那么調(diào)用這個方法時,可以使用子類對象作為實際參數(shù)。(4)如果父類對象與引用指向的實際是一個子類對象,那么這個父類對象的引用可以用強制類型轉(zhuǎn)換轉(zhuǎn)化成子類對象的引用。9.p102程序片段第五章繼承與多態(tài)5.3多態(tài)1.多態(tài)是指一個程序中,同名的不同方法共存的情況2.多態(tài)可通過子類對父類方法的覆蓋實現(xiàn)多態(tài),也可以利用重載在同一個類中定義多個同名的不同方法實現(xiàn)多態(tài)。3.方法的重載(同一個類),方法的覆蓋(父類和子類),域的隱藏(父類和子類)。第五章繼承與多態(tài)5.