回覆列表
  • 1 # 使用者8107137581681

    區別如下:

    1、繼承關係:abstract class抽象類可以繼承一個類和實現多個介面;子類只可以繼承一個抽象類。Interface介面只可以繼承介面(一個或多個);子類可以實現多個介面。

    2、訪問修飾符:abstract class抽象方法可以有public、protected和default這些修飾符。Interface介面方法預設修飾符是public。你不可以使用其它修飾符。

    3、方法實現:abstract class可定義構造方法,可以有抽象方法和具體方法。Interface介面完全是抽象的,沒構造方法,且方法都是抽象的,不存在方法的實現。

    4、實現方式:abstract class子類使用extends關鍵字來繼承抽象類。如果子類不是抽象類的話,它需要提供抽象類中所有宣告的方法的實現。Interface子類使用關鍵字implements來實現介面。它需要提供介面中所有宣告的方法的實現。

    5、作用:abstract class把相同的東西提取出來,即重用。Interface為了把程式模組進行固化的契約,是為了降低偶合。

    擴充套件資料

    abstract class的定義:

    含有abstract修飾符的class即為抽象類,abstract 類不能建立的例項物件。含有abstract方法的類必須定義為abstract class,abstract class類中的方法不必是抽象的。

    abstract class類中定義抽象方法必須在具體(Concrete)子類中實現,所以,不能有抽象構造方法或抽象靜態方法。如果的子類沒有實現抽象父類中的所有抽象方法,那麼子類也必須定義為abstract型別。

    interface的定義:

    介面(interface)可以說成是抽象類的一種特例,介面中的所有方法都必須是抽象的。介面中的方法定義預設為public abstract型別,介面中的成員變數型別預設為public static final。

  • 中秋節和大豐收的關聯?
  • 家裡有個不幹活的妹妹,吃完飯自己不愛洗碗,讓她洗個碗就給臉色,我該怎麼拯救她?