介面的定義方式如下:
[可见度] interface 接口名称 [extends 其他的接口名] { // 声明变量 // 抽象方法}
介面的主體包含著抽象方法,但所有方法在介面內(定義上)都是抽象(Abstract)方法,所以abstract的關鍵字在介面內則不被需要。由於介面代表著一個對外行為的集合,所以任何方法在介面內都是public(公開的)。
如:
public interface Predator { boolean chasePrey(Prey p); void eatPrey(Prey p); }
介面內的成員皆為靜態(static
)、final
及公開(public
) ,反之,他們可以成為任何類別或介面的類型。
相關影片教學推薦:java線上教學
介面的實作:
public class Lion implements Predator { public boolean chasePrey(Prey p) { // programming to chase prey p (specifically for a lion) } public void eatPrey (Prey p) { // programming to eat prey p (specifically for a lion) } }
說明:
如果一個類別實作了一個接口,而沒有實作接口的所有方法,則它必須被標註為abstract(抽象類別)。一個抽象類別的子類別必須實作它未完成的方法,假如該項子類別仍不會實作介面的所有方法,那麼該項子類別依然需要被標註為abstract。
介面通常被使用在Java程式語言,用來做回呼函數使用。 Java並不允許方法作為參數傳遞使用,因此,其中一個解決辦法則是可以定義一個接口,把這個接口當成方法的參數,以此來使用該項對象的方法簽名。
子介面
介面可以延伸為數個不同的接口,可以使用上述所描述的方法,舉例來說:
public interface VenomousPredator extends Predator, Venomous { //介面主體 }
以上的程式片段是合法定義的子接口,與類別不同的是,介面允許多重繼承,而Predator
及Venomous
可能定義或是繼承相同的方法,比如說kill(Prey prey)
,當一個類別實作VenomousPredator
的時候,它將同時實作這兩種方法。
相關文章教學推薦:java入門學習
#以上是java中如何寫一個介面並實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!