您好,登錄后才能下訂單哦!
這篇文章主要介紹了java接口的修飾符怎么定義的相關知識,內容詳細易懂,操作簡單快捷,具有一定借鑒價值,相信大家閱讀完這篇java接口的修飾符怎么定義文章都會有所收獲,下面我們一起來看看吧。
java接口的修飾符可以是abstract和final。接口可以被理解為一種特殊的類,不同的是接口的成員沒有執行體,是由全局常量和公共的抽象方法所組成;接口的方法默認是public abstract;而接口中不可以定義變量即只能定義常量(加上final修飾就會變成常量),所以接口的屬性默認是public static final 常量,且必須賦初值。
抽象類是從多個類中抽象出來的模板,如果將這種抽象進行的更徹底,則可以提煉出一種更加特殊的“抽象類”——接口(Interface)。接口是 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 表示接口的名稱。接口名應與類名采用相同的命名規則,即如果僅從語法角度來看,接口名只要是合法的標識符即可。如果要遵守 Java 可讀性規范,則接口名應由多個有意義的單詞連綴而成,每個單詞首字母大寫,單詞與單詞之間無需任何分隔符。
extends 表示接口的繼承關系;
interface1_name 表示要繼承的接口名稱;
constant_name 表示變量名稱,一般是 static 和 final 型的;
returnType 表示方法的返回值類型;
parameter_list 表示參數列表,在接口中的方法是沒有方法體的。
注意:一個接口可以有多個直接父接口,但接口只能繼承接口,不能繼承類。
java接口的修飾符
接口很重要,為了說明情況,這里稍微啰嗦點:
(1)接口用于描述系統對外提供的所有服務,因此接口中的成員常量和方法都必須是公開(public)類型的,確保外部使用者能訪問它們;
(2)接口僅僅描述系統能做什么,但不指明如何去做,所以接口中的方法都是抽象(abstract)方法;
(3)接口不涉及和任何具體實例相關的細節,因此接口沒有構造方法,不能被實例化,沒有實例變量,只有靜態(static)變量;
(4)接口的中的變量是所有實現類共有的,既然共有,肯定是不變的東西,因為變化的東西也不能夠算共有。所以變量是不可變(final)類型,也就是常量了。
(5) 接口中不可以定義變量?如果接口可以定義變量,但是接口中的方法又都是抽象的,在接口中無法通過行為來修改屬性。有的人會說了,沒有關系,可以通過 實現接口的對象的行為來修改接口中的屬性。這當然沒有問題,但是考慮這樣的情況。如果接口 A 中有一個public 訪問權限的靜態變量 a。按照 Java 的語義,我們可以不通過實現接口的對象來訪問變量 a,通過 A.a = xxx; 就可以改變接口中的變量 a 的值了。正如抽象類中是可以這樣做的,那么實現接口 A 的所有對象也都會自動擁有這一改變后的 a 的值了,也就是說一個地方改變了 a,所有這些對象中 a 的值也都跟著變了。這和抽象類有什么區別呢,怎么體現接口更高的抽象級別呢,怎么體現接口提供的統一的協議呢,那還要接口這種抽象來做什么呢?所以接口中 不能出現變量,如果有變量,就和接口提供的統一的抽象這種思想是抵觸的。所以接口中的屬性必然是常量,只能讀不能改,這樣才能為實現接口的對象提供一個統 一的屬性。
通俗的講,你認為是要變化的東西,就放在你自己的實現中,不能放在接口中去,接口只是對一類事物的屬性和行為更高層次的抽象。對修改關閉,對擴展(不同的實現 implements)開放,接口是對開閉原則的一種體現。
所以:
接口的方法默認是public abstract
;
接口中不可以定義變量即只能定義常量(加上final修飾就會變成常量)。所以接口的屬性默認是public static final
常量,且必須賦初值。
注意:final和abstract不能同時出現。
關于“java接口的修飾符怎么定義”這篇文章的內容就介紹到這里,感謝各位的閱讀!相信大家對“java接口的修飾符怎么定義”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。