在java中抽象類別和介面都是用來實作抽象的,那麼它們之間有什麼區別?下面本篇文章就來跟大家介紹一下。有一定的參考價值,有需要的朋友可以參考一下,希望對大家有幫助。
抽象類別
抽象類別是用來捕捉子類別的通用特性,也就是共同點的;例如:汽車、腳踏車、電瓶車,它們都是車子,可以有一個共同的抽象類別:Vehicle 。抽象類別不能被實例化,不能用來建立對象,只能用來當子類別的超類別。
介面
介面是抽象方法的集合。如果一個類別實作了某個接口,那麼它就會繼承了這個接口的全部抽象方法。
註:抽象方法是一種特殊的方法,它只有聲明,但沒有具體的實作。
接口只是一種形式,它本身是不能做任何事情;如果想要實現一個接口,那麼就必須確保要實現這個接口裡的所以方法。
抽象類別和介面的區別:
1、抽象類別可以同時具有抽象和具體方法;而,介面只能有抽象方法,它是抽象方法的集合(從Java 8開始,它也可以有預設和靜態方法)。
2、抽象類別不支援多重繼承,一次只能擴充一個類別或一個抽象類別。介面支援多重繼承,可以一次擴充任意數量的介面。
3、抽象類別可以有final,non-final,static和non-static等變數。介面只有靜態和最終變數。
4、抽象類別可以擴充另一個具體(常規)類別或抽象類別,並實作Java介面(一個或多個)。一個介面只能擴充另一個Java接口,而且介面不能實作抽象類別。
5、在抽象類別中,關鍵字:「abstract」是將方法宣告為抽象的必要項。在介面中,關鍵字:「abstract」是可選的,用於將方法宣告為抽象
7、可以使用關鍵字「extends」來擴充抽象類別。一個介面類別可以使用關鍵字“implements”來實現。
8、Java 抽象類別可以具有受保護和公開抽象方法,可以有類別成員,如private,protected等。預設情況下,Java介面的成員是公共的,介面只能有公共抽象方法。
以上是java中抽象類別和介面有什麼差別?的詳細內容。更多資訊請關注PHP中文網其他相關文章!