介面與抽象類的區別

2021-08-31 10:40:46 字數 620 閱讀 1260

介面中基本資料型別的資料成員,都預設為static和final,抽象類則不是

區別一,兩者表達的概念不一樣。抽象類是一類事物的高度聚合,那麼對於繼承抽象類的子類來說,對於抽象類來說,屬於「是」的關係;而介面是定義行為規範,因此對於實現介面的子類來說,相對於介面來說,是「行為需要按照介面來完成」。

區別二,抽象類在定義型別方法的時候,可以給出方法的實現部分,也可以不給出;而對於介面來說,其中所定義的方法都不能給出實現部分。

區別三,繼承類對於兩者所涉及方法的實現是不同的。繼承類對於抽象類所定義的抽象方法,可以不用重寫,也就是說,可以延用抽象類的方法;而對於介面類所定義的方法或者屬性來說,在繼承類中必須要給出相應的方法和屬性實現。

區別四,在抽象類中,新增乙個方法的話,繼承類中可以不用作任何處理;而對於介面來說,則需要修改繼承類,提供新定義的方法。

如下給出兩者的簡單對比**。

介面抽象類

多繼承支援

不支援型別限制

沒有有,只能是引用型別

方法實現

繼承型別中必須給出方法實現

繼承類中可以不給出

擴充套件性比較麻煩

相對比較靈活

多層繼承

比較麻煩,需要借助虛函式

比較靈活

介面與抽象類區別

介面是公開的,裡面不能有私有的方法或變數,是用於讓別人使用的,而抽象類是可以有私有方法或私有變數的,另外,實現介面的一定要實現介面裡定義的所有方法,而實現抽象類可以有選擇地重寫需要用到的方法,一般的應用裡,最頂級的是介面,然後是抽象類實現介面,最後才到具體類實現。還有,介面可以實現多重繼承,而乙個類...

介面與抽象類區別

1 從形態上 抽象類可以給出一些成員的實現,介面卻不包含成員的實現。抽象類的抽象成員可被子類部分實現,介面的成員需要實現類完全實現,乙個類只能繼承乙個抽象類,但可實現多個介面 2 類是對物件的抽象,抽象類是對類的抽象,介面是對行為的抽象。也就是說介面是對類的區域性 行為 進行的抽象,而抽象類是對整體...

介面 與 抽象類 區別

抽像類和介面 區別 首先抽象類 1.抽象類不能被例項化,但可以被申明 2.抽象類不一定包含抽像方法 3.一旦類包含了abstract 方法那麼這個類必須宣告 關鍵字 abstract 4.抽像放不放不能有主體就是方法體 5,但是抽象類可以擁有實現的方法 6.乙個類只能繼承乙個抽像類 其次 是介面,就...