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

溫馨提示×

溫馨提示×

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

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

Java常見知識點匯總(③)——面向對象基礎

發布時間:2020-08-08 01:54:06 來源:ITPUB博客 閱讀:176 作者:無敵天驕 欄目:軟件技術

Java常見知識點匯總(③)——面向對象基礎

面向對象三要素:封裝、繼承、多態

①. 封裝:封裝的意義,在于明確標識出允許外部使用的所有成員函數和數據項,或者叫接口。

②. 繼承:

  • 繼承基類的方法,并做出自己的擴展;
  • 聲明某個子類兼容于某基類(或者說,接口上完全兼容于基類),外部調用者可無需關注其差別(內部機制會自動把請求派發dispatch到合適的邏輯)。

③. 多態:基于對象所屬類的不同,外部對同一個方法的調用,實際執行的邏輯不同。很顯然,多態實際上是依附于繼承的第二種含義的。

一. 多態

方法簽名:方法名 + 參數列表(參數類型、個數、順序)

1.1 重寫

子類重寫父類方法,只有實例方法可以被重寫,重寫后的方法必須仍為實例方法。成員變量和靜態方法都不能被重寫,只能被隱藏。

重寫實例方法:超類Parent中有實例方法A,子類child定義了與A 相同簽名和子集返回類型 的實例方法B,子類對象ChildObj只能調用自己的實例方法B。

方法的重寫(override)兩同兩小一大原則:

  • 方法名相同,參數類型相同
  • 子類返回類型小于等于父類方法返回類型
  • 子類拋出異常小于等于父類方法拋出異常
  • 子類訪問權限大于等于父類方法訪問權限

注意:

  • 不能重寫static靜態方法。(形式上可以寫,但本質上不是重寫,屬于下面要講的隱藏)
  • 重寫方法可以改變它的方法修飾符,如final,synchronized,native。不管被重寫方法中有無final修飾的參數,重寫方法都可以增加、保留、去掉這個參數的 final 修飾符(參數修飾符不屬于方法簽名)。

1.2 重載

在同一個類中,有多個方法名相同,參數列表不同(參數個數不同,參數類型不同),與方法的返回值無關,與權限修飾符無關。編譯器通過對方法簽名的識別即可靜態編譯出不同的方法。這也是java中重載與重寫的區別之一。

重載只是一種語言特性,與多態無關,與面向對象也無關。多態是為了實現接口重用。

Java中方法是可以和類名同名的,和構造方法唯一的區別就是,構造方法沒有返回值。

1.3 隱藏

隱藏與覆蓋在形式上極其類似(語法規則),但有著本質的區別:只有成員變量(不管是不是靜態)和靜態方法可以被隱藏。

1.4 成員變量

超類 Parent 中有成員變量 A ,子類 Child 定義了與 A 同名的成員變量 B ,子類對象 ChildObj 調用的是自己的成員變量 B。如果把子類對象 ChildObj 轉換為超類對象 ParentObj ,ParentObj 調用的是超類的成員變量 A !

  • 隱藏成員變量時,只要同名即可,可以更改變量類型(無論基本類型還是隱藏類型)
  • 不能隱藏超類中的 private 成員變量,換句話說,只能隱藏可以訪問的成員變量。
  • 隱藏超類成員變量 A 時,可以降低或提高子類成員變量B的訪問權限,只要A不是 private。
  • 隱藏成員變量與是否靜態無關!靜態變量可以隱藏實例變量,實例變量也可以隱藏靜態變量。
  • 可以隱藏超類中的final成員變量。

1.5 靜態方法

超類 Parent 有靜態方法 A ,子類 Child 定義了與 A 相同簽名和子集返回類型 的靜態方法 B ,子類對象 ChildObj 調用的是自己的靜態方法 B 。如果把子類對象 ChildObj 轉換為超類對象 ParentObj ,ParentObj 調用的是超類的靜態方法 A !

隱藏后的方法必須仍為靜態方法

向AI問一下細節

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

AI

乐清市| 米脂县| 淅川县| 公安县| 布尔津县| 霍山县| 潼南县| 新龙县| 宁南县| 海林市| 吐鲁番市| 大丰市| 高雄县| 上林县| 庆安县| 张家界市| 郑州市| 北辰区| 铜鼓县| 城市| 福安市| 洛扎县| 措美县| 马龙县| 灯塔市| 建昌县| 泰兴市| 北京市| 兴海县| 南木林县| 平舆县| 延津县| 霍林郭勒市| 无为县| 宝清县| 南宫市| 托克逊县| 文昌市| 讷河市| 若羌县| 含山县|