一.Java 接口:
1.接口(英文:Interface)厕妖,在JAVA編程語言中是一個抽象類型,是抽象方法的集合挑庶,接口通常以interface來聲明言秸。一個類通過繼承接口的方式软能,從而來繼承接口的抽象方法。
2.接口并不是類举畸,編寫接口的方式和類很相似埋嵌,但是它們屬于不同的概念。類描述對象的屬性和方法俱恶。接口則包含類要實現(xiàn)的方法雹嗦。
3.除非實現(xiàn)接口的類是抽象類,否則該類要定義接口中的所有方法合是。
4.接口無法被實例化了罪,但是可以被實現(xiàn)。一個實現(xiàn)接口的類聪全,必須實現(xiàn)接口內(nèi)所描述的所有方法泊藕,否則就必須聲明為抽象類。另外难礼,在 Java 中娃圆,接口類型可用來聲明一個變量,他們可以成為一個空指針蛾茉,或是被綁定在一個以此接口實現(xiàn)的對象讼呢。
二.接口與類相似點:
1.一個接口可以有多個方法。
2.接口文件保存在 .java 結(jié)尾的文件中谦炬,文件名使用接口名悦屏。
3.接口的字節(jié)碼文件保存在 .class 結(jié)尾的文件中。
4.接口相應(yīng)的字節(jié)碼文件必須在與包名稱相匹配的目錄結(jié)構(gòu)中键思。
三.接口與類的區(qū)別:
1.接口不能用于實例化對象础爬。
2.接口沒有構(gòu)造方法。
3.接口中所有的方法必須是抽象方法吼鳞。
4.接口不能包含成員變量看蚜,除了 static 和 final 變量。
5.接口不是被類繼承了赔桌,而是要被類實現(xiàn)供炎。
6.接口支持多繼承。
四.接口特性
1.接口中每一個方法也是隱式抽象的,接口中的方法會被隱式的指定為public abstract(只能是 public abstract纬乍,其他修飾符都會報錯)碱茁。
2.接口中可以含有變量,但是接口中的變量會被隱式的指定為public static final變量(并且只能是 public仿贬,用 private 修飾會報編譯錯誤)。
3.接口中的方法是不能在接口中實現(xiàn)的墓贿,只能由實現(xiàn)接口的類來實現(xiàn)接口中的方法茧泪。
五.抽象類和接口的區(qū)別:
1. 抽象類中的方法可以有方法體蜓氨,就是能實現(xiàn)方法的具體功能,但是接口中的方法不行队伟。
2. 抽象類中的成員變量可以是各種類型的穴吹,而接口中的成員變量只能是public static final類型的。
3. 接口中不能含有靜態(tài)代碼塊以及靜態(tài)方法(用 static 修飾的方法)嗜侮,而抽象類是可以有靜態(tài)代碼塊和靜態(tài)方法港令。
4. 一個類只能繼承一個抽象類,而一個類卻可以實現(xiàn)多個接口
相關(guān)例子: