大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 常見問題 Java深入學習的必須知識點之一

Java深入學習的必須知識點之一

更新時間:2020-08-24 16:27:25 來源:動力節點 瀏覽2389次

為什么接口要規定成員變量必須是public static final的呢?

答:

首先接口是一種高度抽象的”模版”,,而接口中的屬性也就是’模版’的成員,就應當是所有實現”模版”的實現類的共有特性,所以它是public static的,是所有實現類共有的.假如可以是非static的話,因一個類可以繼承多個接口,出現重名的變量,如何區分呢?

其次,接口中如果可能定義非final的變量的話,而方法又都是abstract的,這就自相矛盾了,有可變成員變量但對應的方法卻無法操作這些變量,雖然可以直接修改這些靜態成員變量的值,但所有實現類對應的值都被修改了,這跟抽象類有何區別?又接口是一種更高層面的抽象,是一種規范、功能定義的聲明,所有可變的東西都應該歸屬到實現類中,這樣接口才能起到標準化、規范化的作用。所以接口中的屬性必然是final的。

最后,接口只是對事物的屬性和行為更高層次的抽象。對修改關閉,對擴展(不同的實現implements)開放,接口是對開閉原則(Open-Closed Principle)的一種體現。

接口的所有成員都應該公開,所以是public(我覺得因為接口必須被他類實現,所以必須為public)

接口不能實例化,所以只有靜態成員:static(非static成員變量必須通過對象進行操作,而接口不能實例化,所以只能為static)

接口的成員一定應該是常量,所以是final。(這個正如上面所解釋的,如果接口的成員是變量,而一旦實現的類改變了該值,則所有實現類都被改變了,因為static)

interface在設計角度上通俗的定義standard(標注),從面向對象來說我們可以把它看做一個USB接口,所以:

既然是標準,那就應該向外開放,于是接口的所有成員都應該public

既然是標準,那就不能輕易改變,而且要滿足開放性,于是變量需要static(滿足開放性),final(滿足不可變性)

Java深入學習

以上就是動力節點java培訓機構的小編針對“Java深入學習的必須知識點之一”的內容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 日韩欧美亚洲综合久久影院d3 | 欧美色交| 99久久99久久免费精品蜜桃 | 京野结衣免费一区二区 | 成人网18免费网站在线 | 久久免费资源 | 久久综合中文字幕 | 国产精品27页 | 99视频这里有精品 | 亚洲欧美精品网站在线观看 | 精品三级国产一区二区三区四区 | 欧美亚洲综合在线 | 国产―笫一页―浮力影院xyz | 欧美精品成人久久网站 | 久久免费毛片 | 久久久精品免费热线观看 | 波多野结衣一区在线观看 | 久草免费在线视频观看 | youjizz欧美粗又大中国 | 人人爰人人人人人鲁 | 国内特级毛片 | 五月婷中文 | 欧美日韩高清在线观看 | 精品一久久香蕉国产线看播放 | 欧美精品日日鲁夜夜 | jazzjazz国产精品久久 | 亚洲国产精品久久久久666 | 国产高清国内精品福利 | 中文字幕日韩精品一区口 | 一本大道久久香蕉成人网 | 国产成人免费全部网站 | 五月婷婷免费视频 | 国产在线不卡视频 | 欧美一级毛片在线一看 | 久操视频免费在线观看 | 日韩亚州| 爱爱免费 | 一二三区在线观看 | 精品国产系列 | 亚洲精品国产第一区第二区国 | 一级特黄aaa大片在线观看 |