java接口和抽象類的比較

相同點:ide

都位於繼承的頂端,用於被其餘實現或繼承;函數

都不能實例化;對象

都包含抽象方法,其子類都必須覆寫這些抽象方法;繼承

 

區別:接口

抽象類爲部分方法提供實現,避免子類重複實現這些方法,提供代碼重用性;接口只能包含抽象方法;it

一個類只能繼承一個直接父類(多是抽象類),卻能夠實現多個接口;(接口彌補了Java的單繼承)class

 

兩者的選用:構造函數

優先選用接口,儘可能少用抽象類;方法

須要定義子類的行爲,又要爲子類提供共性功能時才選用抽象類;總結

 

 

個人總結:

接口不能有構造函數,抽象類是能夠有構造函數的,

abstract能夠定義構造函數(包括帶函數的構造函數),由於要保證其子類在建立的時候可以進行正確的初始化,可是Abstract類不能被實例化。

 

知識點:若是不能夠或者沒有建立對象,那麼咱們必須加上static修飾,不能用對象調用,就只好用類去調用。

相關文章
相關標籤/搜索