中文字幕日韩精品一区二区免费_精品一区二区三区国产精品无卡在_国精品无码专区一区二区三区_国产αv三级中文在线

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

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

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

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

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

②. 繼承:

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

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

一. 多態(tài)

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

1.1 重寫(xiě)

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

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

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

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

注意:

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

1.2 重載

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

重載只是一種語(yǔ)言特性,與多態(tài)無(wú)關(guān),與面向?qū)ο笠矡o(wú)關(guān)。多態(tài)是為了實(shí)現(xiàn)接口重用。

Java中方法是可以和類名同名的,和構(gòu)造方法唯一的區(qū)別就是,構(gòu)造方法沒(méi)有返回值。

1.3 隱藏

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

1.4 成員變量

超類 Parent 中有成員變量 A ,子類 Child 定義了與 A 同名的成員變量 B ,子類對(duì)象 ChildObj 調(diào)用的是自己的成員變量 B。如果把子類對(duì)象 ChildObj 轉(zhuǎn)換為超類對(duì)象 ParentObj ,ParentObj 調(diào)用的是超類的成員變量 A !

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

1.5 靜態(tài)方法

超類 Parent 有靜態(tài)方法 A ,子類 Child 定義了與 A 相同簽名和子集返回類型 的靜態(tài)方法 B ,子類對(duì)象 ChildObj 調(diào)用的是自己的靜態(tài)方法 B 。如果把子類對(duì)象 ChildObj 轉(zhuǎn)換為超類對(duì)象 ParentObj ,ParentObj 調(diào)用的是超類的靜態(tài)方法 A !

隱藏后的方法必須仍為靜態(tài)方法

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

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

廣告

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

綿陽(yáng)服務(wù)器托管
梁河县| 汝城县| 尉犁县| 东乌珠穆沁旗| 长海县| 徐水县| 工布江达县| 云龙县| 泸定县| 黎川县| 商南县| 新乡县| 永昌县| 南溪县| 利津县| 太原市| 文昌市| 合山市| 榆中县| 永丰县| 丹巴县| 平邑县| 凌海市| 高阳县| 巩义市| 武山县| 建宁县| 丰县| 三台县| 稷山县| 延长县| 云霄县| 双柏县| 腾冲县| 建阳市| 济阳县| 岑溪市| 海宁市| 许昌县| 静乐县| 望江县|