java 抽象類和接口的區別
抽象類是用來(繼承)當做超類的(子類用來實現的),可以用public和protected修飾,可以寫具體的方法可以聲明各種類型的成員變量
接口是用來當做只能存在public的抽象方法(JDK8以後可以有),聲明成員變量是public static final 類型的(即使不屑也會是這種類型)
java不支持多繼承,但是支持多實現,所以換種方式來講,接口就是換種方式(接口)來實現C++那種多繼承的
抽象類中的抽象方法子類可以不用全部實現,但是接口中的方法實現類必須全部實現
從軟件設計角度來看:
1.抽象類是自下而上設計的。也就是說先有子類代碼的重複,然後再抽象成上層的父類(也就是抽象類);
2.接口是自下而上設計的。一般是先考慮設計接口,再去考慮具體的實現。
參考地址:
https://www.maoqitian.com/2019/01/16/%E6%8E%A5%E5%8F%A3%E5%92%8C%E6%8A%BD%E8%B1%A1%E7%B1%BB/