資源描述:
《第4章高級類特性ppt課件.ppt》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、第4章高級類特性1JavaSE知識圖解JAVA發(fā)展歷程JAVA環(huán)境搭建基礎(chǔ)程序設(shè)計數(shù)據(jù)類型流程控制運算符數(shù)組面向?qū)ο缶幊填惡蛯ο髮傩苑椒ㄔO(shè)計模式接口三大特性應(yīng)用程序開發(fā)JDBC集合異常處理類庫多線程IO反射網(wǎng)絡(luò)連接OracleJAVA新特性Eclipse使用泛型枚舉裝箱/拆箱可變參數(shù)Annotation本章內(nèi)容4.1面向?qū)ο筇卣髦豪^承4.2方法的重寫(override)4.3四種訪問權(quán)限修飾符4.4關(guān)鍵字super4.5子類對象實例化過程4.6面向?qū)ο筇卣髦憾鄳B(tài)4.7Object類、包裝類4.1面向?qū)ο筇卣髦?/p>
2、繼承為描述和處理個人信息,定義類Person:publicclassPerson{publicStringname;publicintage;publicDatebirthDate;publicStringgetInfo(){...}}Person+name:String+age:int+birthDate:Date+getInfo():String繼承(1)為描述和處理學(xué)生信息,定義類Student:publicclassStudent{publicStringname;publicintage;publicDateb
3、irthDate;publicStringschool;publicStringgetInfo(){...}}Student+name:String+age:int+birthDate:Date+school:String+getInfo():StringStudent類Worker類Teacher類Person類通過類的繼承Farmer類特有的代碼特有的代碼特有的代碼特有的代碼學(xué)生類教師類工人類農(nóng)民類人類通過繼承的方式實現(xiàn)繼承(2)通過繼承,簡化Student類的定義:publicclassPerson{publicS
4、tringname;publicintage;publicDatebirthDate;publicStringgetInfo(){...}}publicclassStudentextendsPerson{publicStringschool;}//Student類繼承了父類Person的所有屬性和方法,并增加了一個屬性school。Person中的屬性和方法,Student都可以利用。Person+name:String+age:int+birthDate:Date+getInfo():StringStudent+sch
5、ool:String為什么要有繼承?多個類中存在相同屬性和行為時,將這些內(nèi)容抽取到單獨一個類中,那么多個類無需再定義這些屬性和行為,只要繼承那個類即可。此處的多個類稱為子類,單獨的這個類稱為父類(基類或超類)??梢岳斫鉃?“子類isa父類”類繼承語法規(guī)則:classSubclassextendsSuperclass{}繼承(3)繼承(4)作用:繼承的出現(xiàn)提高了代碼的復(fù)用性。繼承的出現(xiàn)讓類與類之間產(chǎn)生了關(guān)系,提供了多態(tài)的前提。不要僅為了獲取其他類中某個功能而去繼承類的繼承(5)子類繼承了父類,就繼承了父類的方法和屬性。在子
6、類中,可以使用父類中定義的方法和屬性,也可以創(chuàng)建新的數(shù)據(jù)和方法。在Java中,繼承的關(guān)鍵字用的是“extends”,即子類不是父類的子集,而是對父類的“擴展”。關(guān)于繼承的規(guī)則:子類不能直接訪問父類中私有的(private)的成員變量和方法。單繼承舉例Person+name:String+age:int+birthDate:Date+getInfo():StringStudent+school:StringSoldierOfficerGraduate+major:String+register():voidsupercla
7、sssubclasssubsubclass類的繼承(6)Java只支持單繼承,不允許多重繼承一個子類只能有一個父類一個父類可以派生出多個子類classSubDemoextendsDemo{}//okclassSubDemoextendsDemo1,Demo2...//error多重繼承多層繼承練習11.(1)定義一個ManKind類,包括成員變量intsex和intsalary;方法voidmanOrWorman():根據(jù)sex的值顯示“man”(sex==1)或者“women”(sex==0);方法voidemploy
8、eed():根據(jù)salary的值顯示“nojob”(salary==0)或者“job”(salary!=0)。(2)定義類Kids繼承ManKind,并包括成員變量intyearsOld;方法printAge()打印yearsOld的值。(3)在Kids類的main方法中實例化Kids的對象someKid,用該對象訪