抽象類和介面的對比
抽象類是用來捕捉子類的通用特性的。介面是抽象方法的集合。
從設計層面來說,抽象類是對類的抽象,是一種模板設計,介面是行為的抽象,是一種行為的規範。
相同點:
不同點:引數
抽象類介面
宣告抽象類使用abstract關鍵字宣告
介面使用inte***ce關鍵字宣告
實現子類使用extends關鍵字來繼承抽象類。如果子類不是抽象類的話,它需要提供抽象類中所有宣告的方法的實現
子類使用implements關鍵字來實現介面。它需要提供介面中所有宣告的方法的實現
構造器抽象類可以有構造器
介面不能有構造器
訪問修飾符
抽象類中的方法可以是任意訪問修飾符
介面方法預設修飾符是public。並且不允許定義為 private 或者 protected
多繼承乙個類最多只能繼承乙個抽象類
乙個類可以實現多個介面
字段宣告
抽象類的字段宣告可以是任意的
介面的字段預設都是 static 和 final 的
抽象類和介面都不能夠例項化,但可以定義抽象類和介面型別的引用。
乙個類如果繼承了某個抽象類或者實現了某個介面都需要對其中的抽象方法全部進行實現,否則該類仍然需要被宣告為抽象類。
介面比抽象類更加抽象,因為抽象類中可以定義構造器,可以有抽象方法和具體方法;
介面中不能定義構造器而且其中的方法全部都是抽象方法。
抽象類中的成員可以是private、預設、protected、public的,而介面中的成員全都是public的。
抽象類中可以定義成員變數,而介面中定義的成員變數實際上都是常量。
有抽象方法的類必須被宣告為抽象類,而抽象類未必要有抽象方法
介面和抽象類
介面和抽象類 今天自學了一下介面,從第一次接觸介面又進一步理解介面的原理。想到介面或許我們更多的是想到和類的對比,而類中抽象類和介面又更為相似。現在我講下我對介面和抽象類的理解。如果單從具體 來看,對這兩個概念很容易模糊,甚至覺得介面就是多餘的,因為單從具體功能來看,除多重繼承外 c 抽象類似乎完全...
抽象類和介面
抽象類 1.是一種特殊的類,除了不能被例項化外,具有類得其他特性.2.抽象類的方法可以不宣告為abstract,此時可以實現方法提 如果宣告為abstract,則不可以實現方法體,只能宣告,如 public abstract int remove int i,int j 此時類必須宣告為抽象 3.乙...
抽象類和介面
1.抽象類 含有abstract修飾符的類即為抽象類。可用於實現 重用。抽象類與普通類的唯一區別 不能建立例項物件 允許有抽象方法,但不必須是抽象的。抽象類中定義的抽象方法必須在具體子類中實現,所以不能有抽象構造方法或抽象靜態方法 如果沒有全部實現抽象父類的抽象方法,子類也要定義為抽象型別。2.介面...