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