面向?qū)ο笕?/h3>
1.封裝
將數(shù)據(jù)和操作數(shù)據(jù)的方法綁定起來,對外提供訪問方法
2.繼承
-定義:子類繼承父類,并且子類可以重寫父類的方法丑念,讓整個系統(tǒng)有了延展性
-原則:單繼承,多層繼承(兒子,爹丢烘,爺)
3.多態(tài)性
(1)概念:
同樣的對象調(diào)用同樣的方法狈蚤,卻做了不同的事
(2)分為2類:
編譯時的多態(tài)性:方法重載
運行時的多態(tài)性:方法重寫
(3)多態(tài)的前提:
要有繼承關(guān)系
要有方法重寫
要有父類引用指向子類
(4)優(yōu)缺點:
優(yōu)點:代碼擴展性惊楼,可維護性,復(fù)用性
缺點:不能訪問子類的特有方法
抽象
將一類事物(對象)的共同特征總結(jié)出來叉谜,并不關(guān)心起實現(xiàn)細(xì)節(jié),
只定義其該有的屬性和行為(方法)。
a.概念
用abstract修飾,如果該類中有抽象方法翰灾,這個類就可被稱為抽象類
b.作用
定義集成體系的共性功能(定義規(guī)則),即:
將共性的方法提取出來放在父類,
將特性的方法放在子類.
c.特點
(1)不能實例化
(2)抽象類的子類:要么是抽象類,要么重寫父類中抽象方法
(3)有抽象方法的類一定是抽象類,但是抽象類不一定有抽象方法
d.abstract不能和哪些關(guān)鍵字共存
(1)static
static關(guān)鍵字修飾的方法可以用類名.方法名()調(diào)用伐债,而abstract修飾的方法沒有方法體
,類名.調(diào)用 抽象方法時沒有意義的
(2)private
abstract是為了讓子類強制重寫预侯,而private修飾的子類都不能訪問
(3)final
abstract是為了讓子類強制重寫,final修飾的方法是不會讓子類修改的
接口
a.概念
對外提供規(guī)則(暴露峰锁,靜態(tài))
b.特點
(1)成員變量只能是常量萎馅,并且是靜態(tài)公共的,
public static final(加static方便調(diào)用)
(2)沒有構(gòu)造方法
(3)成員方法只能是抽象方法
(4)接口中所有的東西都是公開的
(5)類可以多實現(xiàn)接口
c.類和接口區(qū)別:
(1)成員區(qū)別:
接口成員變量只能是常量,方法只能是抽象,沒有構(gòu)造方法
抽象類成員變量可常量可變量,方法可抽象可不抽象,有構(gòu)造方法
(2)關(guān)系區(qū)別:
類:單繼承,多層繼承
接口:可以多繼承
類和接口:類可以實現(xiàn)多個接口
(3)設(shè)計理念
抽象類:定義繼承體系的共性虹蒋,is a
接口:定義的是繼承體系的擴展,like a
面向?qū)ο?局部內(nèi)部類訪問局部變量的問題)
1.局部內(nèi)部類訪問局部變量必須要final修飾糜芳,AndroidStudio也會提示你
2.why:
局部變量的生命周期和方法一樣,方法彈棧后局部變量也會消失魄衅;
如果這時候的局部內(nèi)部類對象還沒有馬上消失想使用局部變量就沒有了;
用final修飾了局部變量峭竣,在類加載的時候就會進入常量池,方法彈棧也在
匿名內(nèi)部類
a.概念
內(nèi)部類的簡寫晃虫,實質(zhì)是集成了該類或?qū)崿F(xiàn)了該接口的子類匿名對象
1.封裝
將數(shù)據(jù)和操作數(shù)據(jù)的方法綁定起來,對外提供訪問方法
2.繼承
-定義:子類繼承父類,并且子類可以重寫父類的方法丑念,讓整個系統(tǒng)有了延展性
-原則:單繼承,多層繼承(兒子,爹丢烘,爺)
3.多態(tài)性
(1)概念:
同樣的對象調(diào)用同樣的方法狈蚤,卻做了不同的事
(2)分為2類:
編譯時的多態(tài)性:方法重載
運行時的多態(tài)性:方法重寫
(3)多態(tài)的前提:
要有繼承關(guān)系
要有方法重寫
要有父類引用指向子類
(4)優(yōu)缺點:
優(yōu)點:代碼擴展性惊楼,可維護性,復(fù)用性
缺點:不能訪問子類的特有方法
將一類事物(對象)的共同特征總結(jié)出來叉谜,并不關(guān)心起實現(xiàn)細(xì)節(jié),
只定義其該有的屬性和行為(方法)。
a.概念
用abstract修飾,如果該類中有抽象方法翰灾,這個類就可被稱為抽象類
b.作用
定義集成體系的共性功能(定義規(guī)則),即:
將共性的方法提取出來放在父類,
將特性的方法放在子類.
c.特點
(1)不能實例化
(2)抽象類的子類:要么是抽象類,要么重寫父類中抽象方法
(3)有抽象方法的類一定是抽象類,但是抽象類不一定有抽象方法
d.abstract不能和哪些關(guān)鍵字共存
(1)static
static關(guān)鍵字修飾的方法可以用類名.方法名()調(diào)用伐债,而abstract修飾的方法沒有方法體
,類名.調(diào)用 抽象方法時沒有意義的
(2)private
abstract是為了讓子類強制重寫预侯,而private修飾的子類都不能訪問
(3)final
abstract是為了讓子類強制重寫,final修飾的方法是不會讓子類修改的
a.概念
對外提供規(guī)則(暴露峰锁,靜態(tài))
b.特點
(1)成員變量只能是常量萎馅,并且是靜態(tài)公共的,
public static final(加static方便調(diào)用)
(2)沒有構(gòu)造方法
(3)成員方法只能是抽象方法
(4)接口中所有的東西都是公開的
(5)類可以多實現(xiàn)接口
c.類和接口區(qū)別:
(1)成員區(qū)別:
接口成員變量只能是常量,方法只能是抽象,沒有構(gòu)造方法
抽象類成員變量可常量可變量,方法可抽象可不抽象,有構(gòu)造方法
(2)關(guān)系區(qū)別:
類:單繼承,多層繼承
接口:可以多繼承
類和接口:類可以實現(xiàn)多個接口
(3)設(shè)計理念
抽象類:定義繼承體系的共性虹蒋,is a
接口:定義的是繼承體系的擴展,like a
1.局部內(nèi)部類訪問局部變量必須要final修飾糜芳,AndroidStudio也會提示你
2.why:
局部變量的生命周期和方法一樣,方法彈棧后局部變量也會消失魄衅;
如果這時候的局部內(nèi)部類對象還沒有馬上消失想使用局部變量就沒有了;
用final修飾了局部變量峭竣,在類加載的時候就會進入常量池,方法彈棧也在
a.概念
內(nèi)部類的簡寫晃虫,實質(zhì)是集成了該類或?qū)崿F(xiàn)了該接口的子類匿名對象