Java基礎之【接口和抽象類的區別】

其實java8引入了default默認方法後,接口抽象類的差別被縮小了,所以這個問題的意義就沒那麼大了,而且實際中我們通常只使用接口

關鍵的區別有4點:

1.接口中的方法必須被其實現類@override ,而抽象類中的方法子類去extends的時候不必須去@override

2.抽象類可以有抽象跟非抽象方法,接口只能由抽象方法,從java8開始接口也可以有默認和靜態方法,那麼實現類也可以不用去override該方法了

3.抽象類單繼承,接口多繼承(可以實現多個)

4.接口可以有final no-final和no-static變量 接口只有靜態變量(static final)

詳細區別參考秒懂百科:

1.抽象類要被繼承 接口要被實現

2.接口只能做方法生命,抽象類中可以做方法聲明跟方法實現

3.抽象類定義的變量只能是公共的靜態的常量,抽象類中的變量是普通變量

4.接口是設計的結果,抽象類是重構的結果

5.接口的抽象級別最高

6.抽象類可以用具體的方法跟屬性(跟普通類一樣),接口只能有抽象方法和不可變常量

7.抽象類主要用來抽象類別,接口主要用來抽象功能

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章