接口(interface)
接口是抽象方法和常量值的集合。從本質上講,接口是一種特殊的抽象類,這種抽象類只包含常量和方法的定義,而沒有變量和方法的實現。
格式:interface 接口名{}
接口的出現將"多繼承"通過另一種形式體現出來,即"多實現"。
實現(implements)
格式:class 類名 implements 接口名 {}
特點:
-
接口不能被實例化。
接口如何實例化呢?參照多態的方式,通過實現類對象實例化,這叫接口多態。
多態的形式:具體類多態,抽象類多態,接口多態。多態的前提:有繼承或者實現關系; 有方法重寫; 有父類/接口)引用指向(子/實現)類對象
-
接口的實現類
要么重寫接口中的所有抽象方法
要么是抽象類
接口的成員特點
接口中的成員修飾符是固定的!
-
成員變量
只能是常量
默認修飾符: public static final -
構造方法
接口沒有構造方法,因為接口主要是對行為進行抽象的,是沒有具體存在
個類如果沒有父類,默認繼承自Object類 -
成員方法
只能是抽象方法
默認修飾符: public abstract
繼承與實現的區別:
- 類與類之間稱為繼承關系:
- 只能單繼承,可以多層繼承。((class))
- 類與接口之間是實現關系:
- 因為接口中的方法都是抽象的,必須由子類實現才可以實例化。可以單實現,也可以多實現;還可以在繼承一個類的同時實現多個接口。((class) extends (class) implements (interface1,interface2…))
- 接口與接口之間是繼承關系:一個接口可以繼承另一個接口,並添加新的屬性和抽象方法,並且接口可以多繼承。((interface) extends (interface1,interface2…))
抽象類和接口的區別
-
成員區別
抽象類 變量常量;有構造方法;有抽象方法,也有非抽象方法
接口 常量;抽象方法 -
關系區別
類與類 繼承,單繼承
類與接口 實現,可以單實現,也可以多實現
接口與接口 繼承,單繼承,多繼承 -
設計理念區別
抽象類 對類抽象,包括屬性、行為
接口 對行為抽象,主要是行為抽象類是對事物的抽象,而接口類是對行為的抽象。