介面中基本資料型別的資料成員,都預設為static和final,抽象類則不是
區別一,兩者表達的概念不一樣。抽象類是一類事物的高度聚合,那麼對於繼承抽象類的子類來說,對於抽象類來說,屬於「是」的關係;而介面是定義行為規範,因此對於實現介面的子類來說,相對於介面來說,是「行為需要按照介面來完成」。
區別二,抽象類在定義型別方法的時候,可以給出方法的實現部分,也可以不給出;而對於介面來說,其中所定義的方法都不能給出實現部分。
區別三,繼承類對於兩者所涉及方法的實現是不同的。繼承類對於抽象類所定義的抽象方法,可以不用重寫,也就是說,可以延用抽象類的方法;而對於介面類所定義的方法或者屬性來說,在繼承類中必須要給出相應的方法和屬性實現。
區別四,在抽象類中,新增乙個方法的話,繼承類中可以不用作任何處理;而對於介面來說,則需要修改繼承類,提供新定義的方法。
如下給出兩者的簡單對比**。
介面抽象類
多繼承支援
不支援型別限制
沒有有,只能是引用型別
方法實現
繼承型別中必須給出方法實現
繼承類中可以不給出
擴充套件性比較麻煩
相對比較靈活
多層繼承
比較麻煩,需要借助虛函式
比較靈活
介面與抽象類區別
介面是公開的,裡面不能有私有的方法或變數,是用於讓別人使用的,而抽象類是可以有私有方法或私有變數的,另外,實現介面的一定要實現介面裡定義的所有方法,而實現抽象類可以有選擇地重寫需要用到的方法,一般的應用裡,最頂級的是介面,然後是抽象類實現介面,最後才到具體類實現。還有,介面可以實現多重繼承,而乙個類...
介面與抽象類區別
1 從形態上 抽象類可以給出一些成員的實現,介面卻不包含成員的實現。抽象類的抽象成員可被子類部分實現,介面的成員需要實現類完全實現,乙個類只能繼承乙個抽象類,但可實現多個介面 2 類是對物件的抽象,抽象類是對類的抽象,介面是對行為的抽象。也就是說介面是對類的區域性 行為 進行的抽象,而抽象類是對整體...
介面 與 抽象類 區別
抽像類和介面 區別 首先抽象類 1.抽象類不能被例項化,但可以被申明 2.抽象類不一定包含抽像方法 3.一旦類包含了abstract 方法那麼這個類必須宣告 關鍵字 abstract 4.抽像放不放不能有主體就是方法體 5,但是抽象類可以擁有實現的方法 6.乙個類只能繼承乙個抽像類 其次 是介面,就...