接口和抽象類的區別

1.抽象類

抽象類就是由abstract關鍵字修飾的類。
如果一個類中含有抽象方法,那這個類必定是抽象類。但是抽象類中不一定只能有抽象方法,還可以有普通方法。抽象類不可以實現,是因爲抽象類裏還存在的未實現的方法。
抽象類與普通類的區別:
1.抽象方法必須是public或者是protected修飾的,默認缺少的情況下是public,不能爲private,因爲這樣就不能被子類繼承了。
2.抽象類不能被實現,不能用來創建對象。
3.抽象類的子類必須實現父類的方法,如果不能實現,那麼這個類一定是抽象類。

2.接口

接口是一種抽象的類型,接口中可以有變量和方法。但是,接口中的變量必須是以public
static final修飾的靜態常量,方法是隱式地定義爲public abstract,所以說,接口中的方法必定是抽象方法。如果一個類實現了這個接口,那麼就必定要實現這個接口的所有方法。

3.區別

相同點
1.都不能被實例化。
2.接口中的實現類和抽象類的子類必須實現了父類的所有方法才能被實例化。
不同點
1.接口中的方法只能定義,不能實現。抽象類的方法可以有定義,也可以有實現。
2.接口只能通過implements實現,抽象類通過extends繼承。
3.接口可以被多實現,但抽象類只能被單繼承。
4.接口中的變量是公告的靜態常量,而抽象類的變量是普通變量。
5.接口強調特定功能的實現,而抽象類強調所屬關係。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章