## **接口與抽象類區別**
~~~
接口與抽象類區別
1.相同點
a,都不能創建對象
b,都是作為父類/父接口.(位于繼承的頂端,其子類都必須覆蓋這些抽象方法)
c,子類/實現類 都必須重新抽象方法,然后才能創建對象
2.不同點
a,抽象類用關鍵字 abstract 接口用關鍵字 interface
b,抽象類中可以有抽象方法,可以沒有抽象方法,也可以有部分是抽象方法,部分不是抽象方法
接口中只要有方法,必須是抽象的
c,抽象類可以定義任意成員變量,接口成員變量必須是 public static final 修飾,可以省略
d,類和抽象類之間關系是單繼承,類和加快之間關系是多實現(彌補單繼承的缺陷)
e, 抽象類作為父類,父類必須定義整個繼承體系的共性內容
接口定義,整個繼承系統 額外 擴展的功能
優先接口類,少用抽象類
需要定義子類的行為,又要為子類提供共性功能時才選用抽象類
~~~
### **抽象類和接口作為方法的參數和返回值**