相對abstract class(抽象類)來講,interface則造出了“完全抽象的class”,絲毫不帶半點實現的內容。且interface中的所有methods(方法)都是虛的空的,當然,編譯器也強迫你這樣做。看下面事例:
interface A{
<span style="white-space:pre"> </span>void x();//這裏不需寫訪問權限,x()就自動成爲了public void x()
<span style="white-space:pre"> </span>String Hello();
}
interface中的方法無需聲明,都會自動設爲了public。
當然,interface中的數據成員也變爲了public,static,final。
interface A{
<span style="white-space:pre"> </span>int a=10;//必須賦值使用
<span style="white-space:pre"> </span>//編譯器會自動帶上 public static final 這三個修飾符
}
你也可以通過java自帶的反編譯工具進行查看具體地址在jdk裏面的bin文件夾裏面javap.exe(不需要啓動它,在cmd裏面直接敲命令即可如:javap -c -l -private a.class就可以反編譯)。
interface的作用:
1.程序的解耦(後期單獨詳細介紹)。
2.定義規範。
3.拓展功能。
interface的注意事項:
1.interface不能創建對象。
2.interface沒有構造方法。
3.interface是給類實現使用的,非抽象類實現一個接口時,必須要實現接口中所有的方法。
實現接口的格式:
class 類名 implements 接口名{}
接口與類之間的關係是:實現關係
類與接口要注意的事項:
1.非抽象類實現接口時,必須實現接口中所有的方法。
2.抽象類實現接口時,可以實現接口中的方法也可以不實現。
3.一個類可以實現多個接口。格式如下:
class A implements b,c,d{}