抽象類與介面的區別

2021-09-19 23:43:52 字數 722 閱讀 3189

介面與抽象類的一些共同點與區別:

基本共同點與區別:

abstract類和介面都可以有abstract方法,abstract類中也可以有非abstract方法,介面不可以。

abstract類中既可以有常量,也可以有變數,介面中只可以有常量,不能有變數。

理解性共同點與區別:

都不能被例項化;

都是提供給新的類使用的;

新的類只能繼承乙個抽象類(本質上是「is a」),但是可以實施多個介面(本質上是「like a」);

抽象類的目的是進行型別隱藏,而介面的目的是制定標準;

抽象類是物件的抽象,而介面像是一種行為規範。

具體用法的共同點與區別:

用抽象類來定義允許多個實現的型別,比使用介面有乙個明顯的優勢:抽象類的演化比介面的演化要容易的多。在後續的發行版中,如果希望在抽象類中增加乙個方法,只增加乙個預設的合理的實現即可,抽象類的所有實現都自動提供了這個新的方法。

類可以實現無限個介面,但僅能從乙個抽象(或任何其他型別)類繼承,從抽象類派生的類仍可實現介面,從而得出介面是用來解決多重繼承問題的。

抽象類當中可以存在非抽象的方法,可介面不能且它裡面的方法只是乙個聲名必須用public來修飾沒有具體實現的方法。

抽象類中的成員變數可以被不同的修飾符來修飾,可介面中的成員變數預設的都是靜態常量(static fainl)。

java抽象類與介面的區別抽象類與介面的特性是什麼

介面和抽象類的概念不一樣。介面是對動作的抽象,抽象類是對根源的抽象。抽象類表示的是個物件,什麼物件。介面表示的是物件的功能,能做什麼。舉個例子 男人 物件 和女人 物件 這兩個類 物件 他們可以抽象為人。公貓和母貓可以抽象為貓。人可以吃飯,可以睡覺,貓呢也可以吃飯和睡覺,那麼這個 吃飯 睡覺 就是某...

抽象類與介面的區別

c 中可以多繼承介面,卻只能繼承自乙個抽象類 抽象類中的方法可以包含一些實現,但介面卻只能定義方法的一種規範,不能包含實現 繼承類必須實現藉口中所有的方法,而不一定要實現抽象類中的所有方法 抽象類可以繼承自抽象類 但介面不能繼承自介面 派生類必須實現未實現的方法,抽象類是抽象方法,介面則是所有成員 ...

抽象類與介面的區別

c 中可以多繼承介面,卻只能繼承自乙個抽象類 抽象類中的方法可以包含一些實現,但介面卻只能定義方法的一種規範,不能包含實現 繼承類必須實現藉口中所有的方法,而不一定要實現抽象類中的所有方法 抽象類可以繼承自抽象類 但介面不能繼承自介面 派生類必須實現未實現的方法,抽象類是抽象方法,介面則是所有成員 ...