Java常見知識點(diǎn)匯總(③)——面向?qū)ο蠡A(chǔ)-創(chuàng)新互聯(lián)

Java常見知識點(diǎn)匯總(③)——面向?qū)ο蠡A(chǔ)

面向?qū)ο笕兀悍庋b、繼承、多態(tài)

成都創(chuàng)新互聯(lián)于2013年開始,是專業(yè)互聯(lián)網(wǎng)技術(shù)服務(wù)公司,擁有項(xiàng)目網(wǎng)站制作、做網(wǎng)站網(wǎng)站策劃,項(xiàng)目實(shí)施與項(xiàng)目整合能力。我們以讓每一個夢想脫穎而出為使命,1280元林口做網(wǎng)站,已為上家服務(wù),為林口各地企業(yè)和個人服務(wù),聯(lián)系電話:18980820575

①. 封裝:封裝的意義,在于明確標(biāo)識出允許外部使用的所有成員函數(shù)和數(shù)據(jù)項(xiàng),或者叫接口。

②. 繼承:

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

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

一. 多態(tài)

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

1.1 重寫

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

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

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

  • 方法名相同,參數(shù)類型相同
  • 子類返回類型小于等于父類方法返回類型
  • 子類拋出異常小于等于父類方法拋出異常
  • 子類訪問權(quán)限大于等于父類方法訪問權(quán)限

注意:

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

1.2 重載

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

重載只是一種語言特性,與多態(tài)無關(guān),與面向?qū)ο笠矡o關(guān)。多態(tài)是為了實(shí)現(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 !

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

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)方法

本文題目:Java常見知識點(diǎn)匯總(③)——面向?qū)ο蠡A(chǔ)-創(chuàng)新互聯(lián)
網(wǎng)站地址:http://bm7419.com/article28/hsjjp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供軟件開發(fā)、商城網(wǎng)站品牌網(wǎng)站設(shè)計(jì)、域名注冊、云服務(wù)器、Google

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

綿陽服務(wù)器托管