Java 接口
接口(英文:Interface)笼痛,在JAVA編程語言中是一個抽象類型膳汪,是抽象方法的集合,接口通常以interface來聲明操软。一個類通過繼承接口的方式,從而來繼承接口的抽象方法宪祥。
接口并不是類聂薪,編寫接口的方式和類很相似,但是它們屬于不同的概念品山。類描述對象的屬性和方法胆建。接口則包含類要實現(xiàn)的方法。
除非實現(xiàn)接口的類是抽象類肘交,否則該類要定義接口中的所有方法。
接口無法被實例化扑馁,但是可以被實現(xiàn)涯呻。一個實現(xiàn)接口的類,必須實現(xiàn)接口內(nèi)所描述的所有方法腻要,否則就必須聲明為抽象類复罐。另外,在 Java 中雄家,接口類型可用來聲明一個變量效诅,他們可以成為一個空指針,或是被綁定在一個以此接口實現(xiàn)的對象。
接口與類相似點:
一個接口可以有多個方法乱投。
接口文件保存在 .java 結(jié)尾的文件中咽笼,文件名使用接口名。
接口的字節(jié)碼文件保存在 .class 結(jié)尾的文件中戚炫。
接口相應(yīng)的字節(jié)碼文件必須在與包名稱相匹配的目錄結(jié)構(gòu)中剑刑。
接口與類的區(qū)別:
接口不能用于實例化對象。
接口沒有構(gòu)造方法双肤。
接口中所有的方法必須是抽象方法施掏。
接口不能包含成員變量,除了 static 和 final 變量茅糜。
接口不是被類繼承了七芭,而是要被類實現(xiàn)。
接口支持多繼承蔑赘。
接口特性
接口中每一個方法也是隱式抽象的,接口中的方法會被隱式的指定為 public abstract(只能是 public abstract抖苦,其他修飾符都會報錯)。
接口中可以含有變量米死,但是接口中的變量會被隱式的指定為 public static final 變量(并且只能是 public锌历,用 private 修飾會報編譯錯誤)。
接口中的方法是不能在接口中實現(xiàn)的峦筒,只能由實現(xiàn)接口的類來實現(xiàn)接口中的方法究西。
抽象類和接口的區(qū)別
- 抽象類中的方法可以有方法體,就是能實現(xiàn)方法的具體功能物喷,但是接口中的方法不行卤材。
- 抽象類中的成員變量可以是各種類型的,而接口中的成員變量只能是 public static final 類型的峦失。
- 接口中不能含有靜態(tài)代碼塊以及靜態(tài)方法(用 static 修飾的方法)扇丛,而抽象類是可以有靜態(tài)代碼塊和靜態(tài)方法。
- 一個類只能繼承一個抽象類尉辑,而一個類卻可以實現(xiàn)多個接口帆精。