資源描述:
《繼承、多態(tài)、接口、異常》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、一、繼承面向對象的三大特征:封裝、繼承、多態(tài)1、定義:繼承是軟件可重用性的一種表現(xiàn),新類可以在不增加自身代碼的情況下,通過從現(xiàn)有的類中繼承其屬性和方法。繼承最基本的作用就是使得代碼課重用,增加軟件的可擴充性。2、語法:訪問修飾符class子類名extends父類名{}3、注意:l子類不能繼承父類的構造方法、private成員和子類與父類不同包且使用默認訪問權限的成員。l每個類只能有一個直接父類。4、特點:l可以繼承public和protected修飾的屬性和方法,不論子類和父類是否在同一個包里。l可以繼承默認訪問修飾符修飾的屬性和方法,但是子類和父類必須在同一個包里l無法繼承
2、父類的構造方法(可以通過super關鍵字調用,且調用時必須是子類構造方法的第一句)。l繼承表達的是“**isa**”的關系。l可以使用super關鍵字調用父類成員:super只能出現(xiàn)在子類的方法和構造方法中,可以訪問父類的屬性、方法、構造方法;l繼承是多態(tài)的基礎,沒有繼承就沒有多態(tài)。5、補充:訪問修飾符本類同包子類其他private√默認的(Friendly)√√protected√√√public√√√√注:protected:不同包中只有實例化子類的對象可以調用protected成員。6、實例化子類對象l子類在實例化時,會首先執(zhí)行其父類的構造方法,然后才執(zhí)行子類的構造方法
3、。l一個類的構造方法在兩種情況中總是會執(zhí)行:創(chuàng)建該類的對象和創(chuàng)建該類的子類的對象。l子類繼承父類時構造方法的調用規(guī)則:如果子類的構造方法中沒有通過super調用父類的有參構造方法,也沒有通過this調用自身的其他構造方法,則系統(tǒng)會默認先調用父類的無參構造方法。如果子類的構造方法中通過super調用父類的構造方法,那么將執(zhí)行父類相應的構造方法。如果子類的構造方法中通過this調用自身的其他構造方法,在相應構造方法中應用以上兩條規(guī)則。7、方法的重寫如果從父類繼承的方法不能滿足子類的需求,可以在子類中對父類的同名方法進行重寫即覆蓋。要求:?發(fā)生的兩個類中(子類重寫父類的方法);?方
4、法名必須相同;?必須具有相同的參數(shù)列表(類型和個數(shù));?返回值類型必須相同或者是其子類;?重寫的方法的訪問權限不能小于原方法的訪問權限。注:構造方法不能重寫8、方法重寫和方法重載的區(qū)別與聯(lián)系位置方法名參數(shù)表返回值訪問修飾符方法重寫子類相同相同相同或是其子類不能嚴于父類方法重載同類相同不同無關無關9、final關鍵字lFinal類不能被繼承l(wèi)Final方法不能被重寫lFinal屬性不能被修改,且必須有初始值二、抽象方法和抽象類1、定義:當一個類的方法被abstract關鍵字修飾時,該方法稱為抽象方法,抽象方法所在的類必須定義為抽象類。2、語法:抽象方法:訪問修飾符abstrac
5、t返回類型方法名(參數(shù)列表);抽象類:abstractclass類名{}3、特點l抽象方法和抽象類需要用abstract修飾;l抽象方法沒有方法體,抽象類不能實例化;l抽象方法必須在抽象類里面,而抽象類中可以包含抽象方法,也可以包含普通類的一切成員;l如果父類是抽象類,那么其所有的抽象方法必須在子類中實現(xiàn)(通過重寫),除非子類也是抽象類;lAbstract修飾符不能喝final修飾符一起用;lPrivate關鍵字不能修飾抽象方法。三、多態(tài)1、定義:在程序設計的術語中,它意味著一個特定類型的變量可以引用不同類型的對象,并且能自動地調用引用的對象的方法。方法重寫是實現(xiàn)多態(tài)的基礎。
6、2、2個要素:子類重寫父類方法、使用父類類型3、向上轉型(自動類型轉換):l子類到父類的轉換l語法:父類型引用變量名=new子類型();l此時通過父類引用變量調用的方法時子類覆蓋或繼承父類的方法,不是父類的方法;l此時通過父類引用變量無法調用子類特有的方法。4、向下轉型(強制類型轉換):l父類類型轉換為子類類型l語法:子類型引用變量名=(子類型)父類型的引用變量lInstanceof運算符:對象類型必須和其后面的參數(shù)所指的的類在繼承上有上下級關系。通常和強制類型轉換結合使用,判斷其真實子類類型。5、優(yōu)點2可替換性2可擴充性2接口性2靈活性2簡化性6、應用形式:使用父類作為方法
7、的形參使用父類作為方法的返回值四、接口1、初識接口接口可以看做一種特殊的抽象類,接口是一個不能實例化的類型,它里面的所有方法都是抽象方法。2、語法接口定義語法:Publicinterface接口名{//接口成員}實現(xiàn)接口語法:Public類名implements接口名{實現(xiàn)方法普通方法}接口繼承接口:修飾符interface接口名extends父接口1,父接口2,......{常量定義方法定義}同時繼承抽象類和實現(xiàn)多個接口語法:Class類名extends父類名implements接口1,接口2,...