接口
1.定義:
* 表示一種能力或者規(guī)范
*
2.使用:
* 1.使用interface關(guān)鍵字聲明接口
public interface A(接口名)? 聲明了一個(gè)A接口
* 2.接口中可以聲明常量、靜態(tài)方法、默認(rèn)實(shí)現(xiàn)的方法、抽象方法
聲明常量
public static final int AGE = 18;
String NAME = "王子玉";(public static final 可以省略不寫(xiě))
聲明靜態(tài)方法 jdk1.8+
Public static void fun1() {}
聲明默認(rèn)實(shí)現(xiàn)的方法 jdk1.8+
public default void fun2() {}? default不可以省略
聲明抽象方法
public abstract void fun3(); 沒(méi)有方法體
void fun4();可以 省略 public abstract
3.使用implements關(guān)鍵字實(shí)現(xiàn)接口
public class B implements A? 實(shí)現(xiàn)類B實(shí)現(xiàn)了接口A
4.分類:
* 1.普通接口:可以有靜態(tài)常量、抽象方法、靜態(tài)方法、默認(rèn)實(shí)現(xiàn)的方法
* 2.標(biāo)識(shí)接口:接口內(nèi)沒(méi)有任何成員,標(biāo)識(shí)一種能力(如Serializable標(biāo)識(shí)該類可序列化)
* 3.函數(shù)式接口:接口中只能有一個(gè)抽象方法,便于函數(shù)式編程使用
5.注意事項(xiàng)
實(shí)現(xiàn)類中需要重寫(xiě)實(shí)現(xiàn) 所有的抽象方法(否則該類是一個(gè)抽象類
),也可以重寫(xiě)接口中默認(rèn)實(shí)現(xiàn)的方法
接口中的靜態(tài)方法可以用接口名直接調(diào)用 不可以使用實(shí)現(xiàn)類類名調(diào)用
實(shí)現(xiàn)類可以獲得接口所有常量 但是無(wú)法修改常量
一個(gè)類可以實(shí)現(xiàn)多個(gè)接口,用逗號(hào)分隔
接口只能繼承接口,多繼承(可以繼承多個(gè)接口),使用逗號(hào)分隔