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

溫馨提示×

溫馨提示×

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

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

為什么Java接口中不允許定義變量

發布時間:2021-07-13 18:33:11 來源:億速云 閱讀:197 作者:chen 欄目:編程語言

這篇文章主要講解了“為什么Java接口中不允許定義變量”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“為什么Java接口中不允許定義變量”吧!

接口就是提供一種統一的”協議”,而接口中的屬性也屬于“協議”中的成員。它們是公共的,靜態的,最終的常量。相當于全局常量。抽象類是不“完全”的類,相當于是接口和具體類的一個中間層。即滿足接口的抽象,也滿足具體的實現。

如果接口可以定義變量,但是接口中的方法又都是抽象的,在接口中無法通過行為來修改屬性。有的人會說了,沒有關系,可以通過實現接口的對象的行為來修改接口中的屬性。這當然沒有問題,但是考慮這樣的情況。如果接口 A 中有一個public 訪問權限的靜態變量 a。按照 Java 的語義,我們可以不通過實現接口的對象來訪問變量 a,通過 A.a = xxx; 就可以改變接口中的變量 a 的值了。正如抽象類中是可以這樣做的,那么實現接口 A 的所有對象也都會自動擁有這一改變后的 a 的值了,也就是說一個地方改變了 a,所有這些對象中 a 的值也都跟著變了。這和抽象類有什么區別呢,怎么體現接口更高的抽象級別呢,怎么體現接口提供的統一的協議呢,那還要接口這種抽象來做什么呢?所以接口中不能出現變量,如果有變量,就和接口提供的統一的抽象這種思想是抵觸的。所以接口中的屬性必然是常量,只能讀不能改,這樣才能為實現接口的對象提供一個統一的屬性。

通俗的講,你認為是要變化的東西,就放在你自己的實現中,不能放在接口中去,接口只是對一類事物的屬性和行為更高層次的抽象。對修改關閉,對擴展(不同的實現 implements)開放,接口是對開閉原則的一種體現。

感謝各位的閱讀,以上就是“為什么Java接口中不允許定義變量”的內容了,經過本文的學習后,相信大家對為什么Java接口中不允許定義變量這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節

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

AI

衡山县| 沈阳市| 平山县| 麦盖提县| 安图县| 吉林省| 万荣县| 故城县| 柳林县| 江油市| 山东省| 武威市| 全南县| 石河子市| 定南县| 临洮县| 莲花县| 哈密市| 石家庄市| 平原县| 红桥区| 衡水市| 沐川县| 噶尔县| 贵州省| 敦化市| 阳朔县| 宾阳县| 社旗县| 远安县| 山东省| 汪清县| 安龙县| 南部县| 临汾市| 瑞丽市| 闸北区| 六盘水市| 遂平县| 汽车| 宁陵县|