抽象類和接口的區別
1、修飾不同
a.抽象類通過abstract進行修飾,屬於半個類,不能進行實例化。
b.接口通過Interface進行定義。
2、定義方法、變量
a.抽象類可以在方法體中寫入一定的代碼,可以有自己的一定邏輯,就是可以有抽象方法,也可以有一般方法;變量也是一樣。
b.接口只能定義方法的名稱,不能有方法體,{}這個也不能有;方法必須用public abstract修飾,變量必須用public static final修飾。
3、普通類可以繼承一個抽象類,但可以繼承多個接口
原因:抽象類中有普通方法,如果繼承類多個抽象類,出現抽象類中普通方法裏的邏輯相同,這樣會造成程序的邏輯混亂,所以只能繼承一個抽象類;而接口中的全都是抽象方法,只有一個方法名字,如果繼承類多個接口,接口中有相同的方法,也不會因爲出現邏輯問題而導致程序運行失敗。
4、設計層面
a.抽象類是對事物對抽象
b.接口是對行爲對抽象
例子:一個程序員繼承類“人”這個抽象類,同時實現類“編程”這個接口