1. 程式人生 > 其它 >Java修飾符 --- abstract

Java修飾符 --- abstract

使用抽象類的好處:介面和實現分離

@

目錄

一、表明類或者成員方法具有抽象屬性

  • abstract 修飾的類為抽象類,如:

    abstract class A {
    }
    
  • abstract 修飾的方法為抽象方法,如:

    abstract int getId();
    

    對於 abstract 方法只能宣告不能實現(因為沒有方法體),並且只能是例項方法,不能是類方法

二、抽象類(abstract 類)和普通類的區別

  • 抽象類中可以有抽象方法,也可以有普通方法

    普通方法不能有抽象法

  • 普通類可以通過new建立,抽象類不能,所以,想要建立該物件,需要非抽象類子類重寫父類的抽象方法,並且實現

三、修飾符矛盾(final、private、static)

  • abstract 不能和 final、private、static 一起修飾使用
  • 原因:abstract 修飾的方法是必須在子類中實現(覆蓋),才能以多型方式呼叫,而 final 修飾父類,子類不能實現;private 修飾,子類不能繼承;static 修飾雖然可以實現,但是呼叫時會先呼叫編譯時型別的方法,也就是父類的 static 方法,結果發現是抽象方法,不能呼叫,所以,abstract 和 final、private、static不能一起用

四、abstract 類的子類

  • 子類是非 abstract 類,必須重寫父類的 abstract 方法,給出方法體
  • 子類是 abstract 類,可以重寫父類的 abstract 方法,也可以繼承父類的 abstract 方法(暫時不實現abstract方法)