abstract抽象類
抽象類的應(yīng)用場(chǎng)景:
描述一類事物的時(shí)候,發(fā)現(xiàn)該事物確實(shí)存在著某種行為,但是目前該行為是不具體的,
那么這時(shí)候我們應(yīng)該抽取該方法的聲明,不去實(shí)現(xiàn)該方法,這時(shí)候我們應(yīng)該使用抽象類。-
抽象類要注意的細(xì)節(jié):
- 如果一個(gè)方法沒(méi)有方法體,那么該方法必須使用abstract修飾。
- 如果一個(gè)類有抽象的方法,那么該類也必須使用abstract修飾,或者使用接口。
- 非抽象類繼承抽象類的時(shí)候,必須要把抽象類中的所有抽象方法全部實(shí)現(xiàn)。
- 抽象類可以定義抽象方法以及非抽象方法。
- 抽象類是可以不存在抽象方法的。
- 抽象類不能創(chuàng)建對(duì)象。
疑問(wèn): 為什么抽象類不能創(chuàng)建對(duì)象呢?
因?yàn)槌橄箢愐坏﹦?chuàng)建了對(duì)象就可以使用對(duì)象去調(diào)用方法了,一旦調(diào)用了抽象方法就沒(méi)有任何的意義了。 - 抽象類是存在構(gòu)造方法的。
疑問(wèn):既然抽象類不能創(chuàng)建對(duì)象,那么存在構(gòu)造方法的意義在那?
抽象類的構(gòu)造方法是留給子類調(diào)用初始化從父類繼續(xù)下去的成員變量的。
abstract不能與以下關(guān)鍵字配合使用
- private修飾符
- final關(guān)鍵字
- static關(guān)鍵字
值傳遞
調(diào)用一個(gè)方法時(shí),傳遞給方法的是變量多存儲(chǔ)的值。