面向?qū)ο蟮闹饕卣鳎?br> 繼承,封裝浅碾,多態(tài)
繼承
含義:
- 在Java中定義一個(gè)類時(shí)大州,讓該類通過關(guān)鍵字extends繼承一個(gè)已有的類,這就是類的繼承
- 被繼承的類稱為父類(超類垂谢,基類)厦画,新的類稱為子類(派生類)。
- 子類繼承父類的所有屬性和方法滥朱,同時(shí)也可以增加自己的屬性和方法
語(yǔ)法:【修飾符】 class 子類名 extends 父類名
繼承的好處:使編碼更高效根暑,易維護(hù),代碼的重用
繼承的規(guī)則:
- 單繼承徙邻,每個(gè)類只能有一個(gè)父類排嫌,不允許有多重繼承
- 一個(gè)父類可以有多個(gè)子類
- 子類繼承父類所有的屬性和方法
子類實(shí)例化的過程
- 子類實(shí)例化先實(shí)例化父類,再實(shí)例化子類
- 要先調(diào)用父類的構(gòu)造器缰犁,父類構(gòu)造器運(yùn)行完畢淳地,才調(diào)用子類的構(gòu)造器
- 可以在自己的構(gòu)造器中使用super關(guān)鍵字類調(diào)用父類的構(gòu)造器
*如果使用super關(guān)鍵字調(diào)用父類構(gòu)造器,必須寫在子類構(gòu)造器的第一行 - 如果調(diào)用無參父類構(gòu)造器帅容,可以不寫super()
- 如果子類調(diào)用父類無參構(gòu)造器颇象,而父類沒有無參構(gòu)造器,系統(tǒng)編譯報(bào)錯(cuò)
- 可以在自己的構(gòu)造器中使用super關(guān)鍵字類調(diào)用父類的構(gòu)造器
調(diào)用構(gòu)造方法
在構(gòu)造方法中可以使用this或super調(diào)用其他的構(gòu)造方法
- super()
作用:調(diào)用父類的構(gòu)造器
只能出現(xiàn)在子類的構(gòu)造器中并徘,且必須是第一行
super()中的參數(shù)遣钳,決定了調(diào)用父類那個(gè)構(gòu)造器
如果子類構(gòu)造器中沒有出現(xiàn)super,那么編譯器會(huì)默認(rèn)加上suoer()麦乞,即調(diào)用父類的空構(gòu)造器蕴茴,如果父類沒有空構(gòu)造器,編譯器提示錯(cuò)誤 - this()
作用:調(diào)用本類的構(gòu)造器
只能寫在構(gòu)造器的第一行 - 在同一個(gè)構(gòu)造器中super()和this()不能同時(shí)出現(xiàn)
封裝
隱藏屬性姐直,方法或?qū)崿F(xiàn)細(xì)節(jié)的過程稱為封裝倦淀。
對(duì)成員訪問權(quán)限的任何控制都稱為封裝機(jī)制。
方法的覆蓋(重寫)
規(guī)則:
子類中的覆蓋方法應(yīng)具有
- 相同的方法名
- 相同的參數(shù)列表(參數(shù)數(shù)量声畏,類型撞叽,順序都要相同)
- 相同的返回值類型
- 子類方法訪問權(quán)限不小于父類方法的訪問權(quán)限
abstract和final
抽象類聲明格式
【訪問權(quán)限修飾符】 abstract 返回值類型 抽象方法名 (參數(shù)列表);
抽象方法:
- 只有方法聲明,沒有方法實(shí)現(xiàn)的方法
- 抽象方法需要子類重寫該方法能扒,因此不能用private,final修飾
final關(guān)鍵字
final可以修飾的元素:
- 類:不能被繼承
- 變量(屬性和局部變量):不能被重新賦值(在聲明時(shí)賦值辫狼,或在構(gòu)造器中賦值初斑,系統(tǒng)不會(huì)對(duì)final屬性默認(rèn)的賦初始值)
- 方法:不能在子類中被覆蓋,即不能修改
抽象類
抽象類聲明格式:
【訪問修飾符】 abstract class 類名{}
抽象類是抽象方法和非抽象方法的集合膨处,包含特殊情況如下:
- 抽象類中可以全部是抽象方法
- 抽象類中可以全部為非抽象方法
接口
一個(gè)類可以實(shí)現(xiàn)多個(gè)接口见秤,彌補(bǔ)類的不能多繼承缺點(diǎn)
接口的概念:
- 這包含常量和抽象方法,而沒有變量和方法的實(shí)現(xiàn)
- 不是一個(gè)類真椿,不能實(shí)例化
- 接口的成員 :常量(字段)抽象方法
【訪問權(quán)限修飾符】 interface 接口名{接口的成員}
接口默認(rèn):
常量:public static final
抽象方法:public abstract
接口可以實(shí)現(xiàn)多繼承鹃答,用逗號(hào)隔開
多態(tài)
具有表現(xiàn)多種形態(tài)的能力的特征
上溯造型:子類轉(zhuǎn)換為父類(損失了子類拓展的屬性和方法)
下溯造型:必須先上溯才能下溯,強(qiáng)制轉(zhuǎn)換
多態(tài)存在的三個(gè)必要條件:
- 要有繼承突硝,或?qū)崿F(xiàn)
- 要有重寫
- 父類引用指向子類對(duì)象
instanceof運(yùn)算符
對(duì)象 instanceof 類 判斷對(duì)象是否屬于一個(gè)類
對(duì)象 instanceof 接口 判斷對(duì)象是否實(shí)現(xiàn)了某個(gè)接口
返回值 boolean