資源描述:
《《繼承和多態(tài)上》PPT課件.ppt》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、Java語言概述1第六講繼承和多態(tài)(上)西亞斯學院計算機系姜斌2011年Java語言概述2課堂內容一、繼承的概念1、繼承涵義2、繼承定義,父類和子類定義3、繼承例子二、類庫繼承例子1、Object類2、例子三、擴展類1、繼承關系的語法定義2、屬性繼承和隱藏3、方法繼承,覆蓋和重載*4、子類中構造函數的使用四、Abstract繼承一、繼承涵義和定義1、涵義繼承(Inheritance):三大特性之一類之間的繼承關系是現實世界中遺傳關系的直接模擬,一方面,它表示類之間的擴展性的聯系以及對屬性和操作的共享,即子類可以沿用父類(被繼
2、承類)的某些特征。另一方面,子類也可以具有自己獨立的屬性和操作1、涵義事物之間最基本聯系:1)“ISA”關系繼承是一個“ISA”關系有時也稱為“普通”和“特殊”的聯系新擴展出來的類是原有類的某一個特例,可有一個或多個子類或擴展類存在繼承關系+move()-name:String-age:Integer-Color:String-Sex:CharAnimal+climb()+jump()feetNum-Cat+fly()wingNumBirdJava語言概述6組合關系2)“HASA”關系一個事物所具有其他事物其他事物是其組成部
3、分,這種一般稱為“組合”或“聚合”關系(要和繼承區(qū)別開)Java語言概述72、繼承定義繼承性是指一個新的類繼承原有類的基本特性,并增加新的特性;原有類稱為父類或基類,新的類稱為子類或擴展類。特征:軟件復用的一種形式。新類由已存在的類生成,可以不去從頭去定義一個新類;如果子類只從一個父類繼承,則稱為單繼承;如果子類從一個以上父類繼承,則稱為多繼承(在java中沒有多繼承,類似結構通過接口實現)。繼承關系是可以傳遞的,如左圖,E繼承C,而C繼承A,因而E也繼承了A,所以E也是A的子類,是間接子類,C是A的直接子類ClassCex
4、tendsAClassFimplementsC,D;ClassEimplementsB,D(C,B,D為接口類)Java語言概述93、繼承例子例3,飛機、汽車和輪船可歸于交通工具類,飛機/汽車/輪船可以繼承交通工具類某些屬性和操作,所以交通工具和飛行器/汽車/輪船之間是繼承關系例2,企業(yè)中員工可以有不同特殊員工,如經理是特殊的員工,所以,員工和經理類之間是繼承關系例1,動物有不同種類,例如:貓科類和鳥類,所以,動物和貓/鳥之間是繼承關系二、類庫繼承例子Java語言概述111.Object類-類中的“黃帝”是一個特殊的類,所有
5、類(包括類庫中的和用開發(fā)者創(chuàng)作的類都屬于其子類,并繼承其內容)Object類是所有類的根.每個類都以它來作為超類,所有的類,包括數組(arrays),都可實現覆蓋Object類中的方法.每個類都隱藏地擴展了此類,即等同于在類地聲明時加入,“extendsObject”Java語言概述12Object類的方法常用的方法:StringtoString()--輸出關于對象的描述信息,可以被覆蓋返回對象的字符串表示。Object的方法返回一個字符串、包含該對象的類名、一個@字符和實例散列碼(哈希)的十六進制表示。protectedO
6、bjectclone()創(chuàng)建并返回此對象的一個副本。(在子類中不要依賴Object的這個方法。)booleanequals(Objectobj)指示某個其他對象是否與此對象“相等”。(在子類中不要依賴Object的這個方法。)protected?voidfinalize()當垃圾回收器確定不存在對該對象的更多引用時,由對象的垃圾回收器調用此方法。ClassgetClass()返回一個對象的運行時類。InthashCode()返回該對象的哈希碼值。2、類庫類的繼承特例由于所有類都是由繼承java.lang.Object而來,所
7、以類庫的類都是Object的類的直接或間接子類。例如:java.lang.String直接繼承Objectjavax.swing.JOptionPane間接繼承Obejct用戶自定義類也直接或間接繼承Object3、定義思考我們定義的飛機類Plane,其實隱含繼承ObjectclassPlane[extendsObject]//系統在編譯時自動執(zhí)行例如可以在Plane類中我們定義有toString方法,這個實際繼承了覆蓋了父類Object同名方法;方法為:publicStringtoString(){return("spee
8、dis:"+speed+"lookis:"+look);}思考:如果我們不定義這個方法會怎么樣三、繼承的實現–定義擴展類Java語言概述17父類名跟在extends關鍵字后面,用來說明當前類是哪個已經存在類的子類,存在繼承關系。定義順序:1)定義父類“動物類”Animal;2)然后定義