您好,登錄后才能下訂單哦!
面向對象三要素:封裝、繼承、多態
①. 封裝:封裝的意義,在于明確標識出允許外部使用的所有成員函數和數據項,或者叫接口。
②. 繼承:
③. 多態:基于對象所屬類的不同,外部對同一個方法的調用,實際執行的邏輯不同。很顯然,多態實際上是依附于繼承的第二種含義的。
方法簽名:方法名 + 參數列表(參數類型、個數、順序)
1.1 重寫
子類重寫父類方法,只有實例方法可以被重寫,重寫后的方法必須仍為實例方法。成員變量和靜態方法都不能被重寫,只能被隱藏。
重寫實例方法:超類Parent中有實例方法A,子類child定義了與A 相同簽名和子集返回類型 的實例方法B,子類對象ChildObj只能調用自己的實例方法B。
方法的重寫(override)兩同兩小一大原則:
注意:
1.2 重載
在同一個類中,有多個方法名相同,參數列表不同(參數個數不同,參數類型不同),與方法的返回值無關,與權限修飾符無關。編譯器通過對方法簽名的識別即可靜態編譯出不同的方法。這也是java中重載與重寫的區別之一。
重載只是一種語言特性,與多態無關,與面向對象也無關。多態是為了實現接口重用。
Java中方法是可以和類名同名的,和構造方法唯一的區別就是,構造方法沒有返回值。
1.3 隱藏
隱藏與覆蓋在形式上極其類似(語法規則),但有著本質的區別:只有成員變量(不管是不是靜態)和靜態方法可以被隱藏。
1.4 成員變量
超類 Parent 中有成員變量 A ,子類 Child 定義了與 A 同名的成員變量 B ,子類對象 ChildObj 調用的是自己的成員變量 B。如果把子類對象 ChildObj 轉換為超類對象 ParentObj ,ParentObj 調用的是超類的成員變量 A !
1.5 靜態方法
超類 Parent 有靜態方法 A ,子類 Child 定義了與 A 相同簽名和子集返回類型 的靜態方法 B ,子類對象 ChildObj 調用的是自己的靜態方法 B 。如果把子類對象 ChildObj 轉換為超類對象 ParentObj ,ParentObj 調用的是超類的靜態方法 A !
隱藏后的方法必須仍為靜態方法
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。