亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

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

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

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

新绛县| 策勒县| 旬邑县| 江山市| 杭州市| 深泽县| 化州市| 栾城县| 舟山市| 广东省| 洱源县| 额尔古纳市| 洪湖市| 贵定县| 灵台县| 永平县| 和田市| 芷江| 和政县| 日喀则市| 宽甸| 梁河县| 洛浦县| 四川省| 宝丰县| 永春县| 鄂尔多斯市| 密山市| 乌苏市| 峡江县| 沙河市| 岗巴县| 都昌县| 彭阳县| 胶州市| 盐亭县| 徐水县| 保靖县| 清水县| 正蓝旗| 酒泉市|