91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

java接口的修飾符怎么定義

發布時間:2023-01-04 13:37:13 來源:億速云 閱讀:162 作者:iii 欄目:編程語言

這篇文章主要介紹了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接口的修飾符怎么定義”知識都有一定的了解,大家如果還想學習更多知識,歡迎關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阿坝| 台湾省| 西藏| 逊克县| 湘潭县| 高陵县| 剑河县| 东安县| 安乡县| 神农架林区| 淄博市| 土默特右旗| 泗水县| 乌拉特前旗| 育儿| 苗栗市| 武城县| 平利县| 太康县| 鄂伦春自治旗| 古浪县| 南阳市| 揭东县| 曲靖市| 山东| 甘孜| 横山县| 邢台市| 玉龙| 姚安县| 贵港市| 平远县| 喜德县| 洪江市| 漳州市| 嘉兴市| 桃园县| 东莞市| 闵行区| 蒙山县| 门头沟区|