接口在java編程語言中是一個抽象類型,是抽象方法的集合,接口通常以interface來聲明,接口無法被實例化,但是可以被實現(xiàn),那java接口如何定義?下面來我們就來給大家講解一下。
Java 接口的定義方式與類基本相同,不過接口定義使用的關鍵字是 interface,接口定義的語法格式如下:
[public] interface interface_name[extends interface1_name[, interface2_name, …]] { // 接口體,其中可以包含定義常量和聲明方法 [public][static][final] type constant_name = value; // 定義常量 [public][abstract] returnType method_name(parameter_list); // 聲明方法 }
對以上語法的說明如下:
public 表示接口的修飾符,當沒有修飾符時,則使用默認的修飾符,此時該接口的訪問權限僅局限于所屬的包;
interface_name 表示接口的名稱。接口名應與類名采用相同的命名規(guī)則,即如果僅從語法角度來看,接口名只要是合法的標識符即可。如果要遵守 Java 可讀性規(guī)范,則接口名應由多個有意義的單詞連綴而成,每個單詞首字母大寫,單詞與單詞之間無需任何分隔符。
extends 表示接口的繼承關系;
interface1_name 表示要繼承的接口名稱;
constant_name 表示變量名稱,一般是 static 和 final 型的;
returnType 表示方法的返回值類型;
parameter_list 表示參數(shù)列表,在接口中的方法是沒有方法體的。
注意:一個接口可以有多個直接父接口,但接口只能繼承接口,不能繼承類。
接口對于其聲明、變量和方法都做了許多限制,這些限制作為接口的特征歸納如下:
具有 public 訪問控制符的接口,允許任何類使用;沒有指定 public 的接口,其訪問將局限于所屬的包。
方法的聲明不需要其他修飾符,在接口中聲明的方法,將隱式地聲明為公有的(public)和抽象的(abstract)。
在 Java 接口中聲明的變量其實都是常量,接口中的變量聲明,將隱式地聲明為 public、static 和 final,即常量,所以接口中定義的變量必須初始化。
接口沒有構造方法,不能被實例化。例如:
public interface A { publicA() { …} // 編譯出錯,接口不允許定義構造方法 }
一個接口不能夠實現(xiàn)另一個接口,但它可以繼承多個其他接口。子接口可以對父接口的方法和常量進行重寫。例如:
public interface StudentInterface extends PeopleInterface { // 接口 StudentInterface 繼承 PeopleInterface int age = 25; // 常量age重寫父接口中的age常量 void getInfo(); // 方法getInfo()重寫父接口中的getInfo()方法 }
例如,定義一個接口 MyInterface,并在該接口中聲明常量和方法,如下:
public interface MyInterface { // 接口myInterface String name; // 不合法,變量name必須初始化 int age = 20; // 合法,等同于 public static final int age = 20; void getInfo(); // 方法聲明,等同于 public abstract void getInfo(); }
java接口能干嘛?
1、有利于對代碼進行維護:比如你要做一個畫板程序,其中里面有一個面板類,主要負責繪畫功能,然后你就這樣定義了這個類。可是在不久將來,你突然發(fā)現(xiàn)現(xiàn)有的類已經不能夠滿足需要,然后你又要重新設計這個類,更糟糕是你可能要放棄這個類,那么其他地方可能有引用他,這樣修改起來很麻煩。如果你一開始定義一個接口,把繪制功能放在接口里,然后定義類時實現(xiàn)這個接口,然后你只要用這個接口去引用實現(xiàn)它的類就行了,以后要換的話只不過是引用另一個類而已,這樣就達到維護、拓展的方便性。
2、保證代碼的安全和嚴密:一個好的程序一定符合高內聚低耦合的特征,那么實現(xiàn)低耦合,定義接口是一個很好的方法,能夠讓系統(tǒng)的功能較好地實現(xiàn),而不涉及任何具體的實現(xiàn)細節(jié)。這樣就比較安全、嚴密一些,這一思想一般在軟件開發(fā)中較為常見。
除了以上之外,java接口還保證了代碼的簡單、規(guī)范性,這使java人員開發(fā)起來更加節(jié)省時間。最后大家如果想要了解更多java初識知識,敬請關注賦能網。
本文鏈接:
本文章“java接口如何定義?java接口能干嘛?”已幫助 63 人
免責聲明:本信息由用戶發(fā)布,本站不承擔本信息引起的任何交易及知識產權侵權的法律責任!
本文由賦能網 整理發(fā)布。了解更多培訓機構》培訓課程》學習資訊》課程優(yōu)惠》課程開班》學校地址等機構信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細解答:
咨詢熱線:4008-569-579