面向?qū)ο笕兀悍庋b、繼承、多態(tài)
成都創(chuàng)新互聯(lián)于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務公司,擁有項目網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項目實施與項目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元林口做網(wǎng)站,已為上家服務,為林口各地企業(yè)和個人服務,聯(lián)系電話:18980820575①. 封裝:封裝的意義,在于明確標識出允許外部使用的所有成員函數(shù)和數(shù)據(jù)項,或者叫接口。
②. 繼承:
③. 多態(tài):基于對象所屬類的不同,外部對同一個方法的調(diào)用,實際執(zhí)行的邏輯不同。很顯然,多態(tài)實際上是依附于繼承的第二種含義的。
方法簽名:方法名 + 參數(shù)列表(參數(shù)類型、個數(shù)、順序)
1.1 重寫
子類重寫父類方法,只有實例方法可以被重寫,重寫后的方法必須仍為實例方法。成員變量和靜態(tài)方法都不能被重寫,只能被隱藏。
重寫實例方法:超類Parent中有實例方法A,子類child定義了與A 相同簽名和子集返回類型 的實例方法B,子類對象ChildObj只能調(diào)用自己的實例方法B。
方法的重寫(override)兩同兩小一大原則:
注意:
1.2 重載
在同一個類中,有多個方法名相同,參數(shù)列表不同(參數(shù)個數(shù)不同,參數(shù)類型不同),與方法的返回值無關,與權(quán)限修飾符無關。編譯器通過對方法簽名的識別即可靜態(tài)編譯出不同的方法。這也是java中重載與重寫的區(qū)別之一。
重載只是一種語言特性,與多態(tài)無關,與面向?qū)ο笠矡o關。多態(tài)是為了實現(xiàn)接口重用。
Java中方法是可以和類名同名的,和構(gòu)造方法唯一的區(qū)別就是,構(gòu)造方法沒有返回值。
1.3 隱藏
隱藏與覆蓋在形式上極其類似(語法規(guī)則),但有著本質(zhì)的區(qū)別:只有成員變量(不管是不是靜態(tài))和靜態(tài)方法可以被隱藏。
1.4 成員變量
超類 Parent 中有成員變量 A ,子類 Child 定義了與 A 同名的成員變量 B ,子類對象 ChildObj 調(diào)用的是自己的成員變量 B。如果把子類對象 ChildObj 轉(zhuǎn)換為超類對象 ParentObj ,ParentObj 調(diào)用的是超類的成員變量 A !
1.5 靜態(tài)方法
超類 Parent 有靜態(tài)方法 A ,子類 Child 定義了與 A 相同簽名和子集返回類型 的靜態(tài)方法 B ,子類對象 ChildObj 調(diào)用的是自己的靜態(tài)方法 B 。如果把子類對象 ChildObj 轉(zhuǎn)換為超類對象 ParentObj ,ParentObj 調(diào)用的是超類的靜態(tài)方法 A !
隱藏后的方法必須仍為靜態(tài)方法