java中abstract關鍵字(抽象類)
阿新 • • 發佈:2022-02-21
需求
- 當父類某個方法,需要宣告,但是又不確定如何實現時,可以用抽象方法,那麼這個類就是抽象類
- 例如:父類是一個動物類,父類裡面有很多方法,其中有一個方法是吃食物,但是不知道吃什麼,需要子類繼承的時候重寫該方法,去設定動物到底吃什麼食物
細節
- 當類用abstract關鍵字宣告時,就是一個抽象類
- 當一個類中存在抽象方法時,需要該類宣告為abstract類
- 抽象方法不能有方法體。例如:publicabstractvoideat();
- 抽象類不能被例項化,不能 new 抽象類
- 抽象類不一定要含abstract方法,可以沒有抽象方法
- 但是當方法是抽象方法時,類也必須是抽象類
- abstract只能修飾方法和類,不能修飾屬性以及其他
- 如果一個類繼承抽象類,則必須實現抽象類的所有抽象方法,如果子類也是抽象類,可以不實現父類的所有抽象方法
- 抽象方法不能使用private、 final和static來修飾, 因為這些關鍵宇都是和重寫相違背的。
練習
- abstract final class A{ } 能編譯通過嗎? 錯誤,final是不能繼承
- abstract public static void test2(); 能編譯通過嗎? 錯誤,static和 方法重寫無關
- abstract private void test3();能編譯通過嗎 ? 錯誤 private 的方法不能重寫