天天看點

接口與抽象類的差別?

抽象類,可以有不抽象的方法,

接口:一定都是抽象的東西,而且隻有常量。

接口:是為了解決java 中的單繼承問題,一個類可以繼承多個接口

2. 接口中的執行個體變量預設是 final 類型的,而抽象類中則不一定

3. 一個類可以實作多個接口,但最多隻能實作一個抽象類

現在有很多讨論和建議提倡用interface代替abstract類,兩者從理論上可以做一般性的混用,但是在實際應用中,他們還是有一定差別的。抽象類一般作為公共的父類為子類的擴充提供基礎,這裡的擴充包括了屬性上和行為上的。而接口一般來說不考慮屬性,隻考慮方法,使得子類可以自由的填補或者擴充接口所定義的方法,

總之,在許多情況下,接口确實可以代替抽象類,如果沒有說屬性上的繼承的話。