Try   HackMD

抽象類別與抽象方法 What is abstract?

tags: java abstract method decorator modifier tutorials
  • 抽象方法:只要沒有實作,就是抽象方法。

    eg. public abstract domethod( );

示意圖:

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →

💡 方法只有( )卻沒有後面實作的{ },這樣就是抽象方法!


  • 抽象類別:

    • 只要類別內有抽象方法,就一定是抽象類別。

    抽象類別必須標示abstract,表示這個類別定義不完整,而定義不完整的類別就不能用來產生instance。

    一旦用抽象類別建構instance,就會引發編譯錯誤。

    • 但抽象類別不一定有抽象方法。

    而為什麼沒有抽象方法卻還要設成抽象類別呢?

    是因為抽象類別不能被new成物件

    所以當你有某個Class不想被new成物件,不想被拿去用時,可以把那個Class設成abstract

如圖所示:

抽象類別中不一定有抽象方法。

Image Not Showing Possible Reasons
  • The image file may be corrupted
  • The server hosting the image is unavailable
  • The image path is incorrect
  • The image format is not supported
Learn More →


💡 抽象類別的重點在於繼承。
💡 抽象方法的重點在於實作,多個子類別可以依據各自的需求實作。

一旦標示abstract,就不會載入記憶體,也就無法被產生instance,只能透過override(覆寫)來實踐。



  • 抽象類別與繼承的關係

💡 心智圖可放大縮小,也可以移動

抽象類別不能用來產生instance
實作後的子類別就不是抽象類別,可以用來產生instance
子類別不要求實作
子類別不想實作,所以也變成抽象類別
子類別必須實作父類別中的抽象方法
父類別中沒有抽象方法
父類別中有抽象方法
父類別是抽象類別