接口:完全抽象的類(抽象類的抽象類 )
接口中只存在抽象方法和常量
接口中的方法也只能是 public abstract修飾
Java是單繼承,但是接口可以繼承多個接口(單繼承 多實現)
接口不能有構造方法,抽象類可以有。
接口不能有方法體,抽象類可以有。
接口不能有靜態方法,抽象類可以有。
在接口中凡是變量必須是publicstatic final,而在抽象類中沒有要求。
抽象類和接口中都不能有靜態的抽象方法
靜態和抽象不能同時修飾一個方法
接口是強制性的,他的所有方法都要實現
但是抽象類不是
比如說一個接口,你只用到其中的一兩個方法,可是如果直接實現接口需要實現裏面的五個方法,這時候你可以先讓抽象類實現接口,然後你的類繼承接口,就不需要都實現接口的方法了
而且接口的抽象層次要更高,是一種契約,抽象類是提供了很多的方法,給你用,沒有強制性
只有接口可以被實現
接口可以繼承接口,但不能實現接口
普通類可以實現接口,但不能實現抽象類
抽象類可以實現接口,但不能繼承接口
繼承 |
被繼承 |
實現 |
被實現 |
|
接口 |
接口 |
接口 抽象類 普通類 |
無 |
抽象類 普通類 |
抽象類 |
接口 抽象類 普通類 |
抽象類 普通類 |
接口 |
無 |
普通類 |
接口 抽象類 普通類 |
抽象類 普通類 |
接口 |
無 |