成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

關(guān)于繼承的那些事!

soasme / 2215人閱讀

摘要:格式子類(lèi)名父類(lèi)名好處提高了代碼的復(fù)用性提高了代碼的維護(hù)性通過(guò)少量的修改,滿(mǎn)足不斷變化的具體要求讓類(lèi)與類(lèi)產(chǎn)生了一個(gè)關(guān)系,是多態(tài)的前提要求有共同的屬性或操作有細(xì)微的差別繼承的弊端讓類(lèi)的耦合性增強(qiáng)。

第二階段 JAVA面向?qū)ο?/strong> 第二章 繼承

其實(shí)在我們面向?qū)ο筮@一階段的學(xué)習(xí)中,我們就是圍繞Java的三大特性(封裝、繼承、多態(tài))來(lái)講解的,在上一掌內(nèi)容中我們講解了一部分封裝的有關(guān)知識(shí),今天我們來(lái)重點(diǎn)學(xué)習(xí)繼承的學(xué)習(xí)。

2.1 繼承的基本認(rèn)識(shí) 概述:

繼承就是在一個(gè)已有類(lèi)的基礎(chǔ)上派生出新類(lèi)

子類(lèi)繼承父類(lèi)的特征和行為,使得子類(lèi)對(duì)象(實(shí)例)具有父類(lèi)的實(shí)例域和方法,或子類(lèi)從父類(lèi)繼承方法,使得子類(lèi)具有父類(lèi)相同的行為

(父類(lèi)更通用,子類(lèi)更具體)

功能:有了繼承以后,我們定義一個(gè)類(lèi)的時(shí)候,可以在一個(gè)已經(jīng)存在的類(lèi)的 基礎(chǔ)上,還可以定義自己的新成員。 格式:class 子類(lèi)名 extends 父類(lèi)名 {} 好處:

A:提高了代碼的復(fù)用性

B:提高了代碼的維護(hù)性(通過(guò)少量的修改,滿(mǎn)足不斷變化的具體要求)

C:讓類(lèi)與類(lèi)產(chǎn)生了一個(gè)關(guān)系,是多態(tài)的前提

要求:

有共同的屬性或操作

有細(xì)微的差別

2.2 繼承的弊端

A:讓類(lèi)的耦合性增強(qiáng)。這樣某個(gè)類(lèi)的改變就會(huì)影響其他和該類(lèi)相關(guān)的類(lèi)

·原則:低耦合,高內(nèi)聚。

·耦合:類(lèi)與類(lèi)的關(guān)系

·內(nèi)聚:自己完成某件事情的能力

B:打破了封裝性

特點(diǎn):

A:Java只支持單繼承,不支持多繼承(C++支持)

B:Java支持多層繼承(繼承體系)

兒子繼承爸爸 爸爸繼承爺爺 兒子可以通過(guò)爸爸繼承爺爺

注意:

A: 子類(lèi)只能繼承父類(lèi)所有非私有成員(成員方法和成員變量)

B:子類(lèi)不能繼承父類(lèi)的構(gòu)造方法,但是可以通過(guò)super關(guān)鍵字去訪問(wèn)方法

C: 不要為了部分功能而繼承(多層繼承會(huì)使得子類(lèi)繼承多余的方法)

2.3 Java繼承中的成員關(guān)系

A:成員變量

a:子類(lèi)的成員變量名稱(chēng)和父類(lèi)中的成員變量名稱(chēng)不一樣,這個(gè)太簡(jiǎn)單

b:子類(lèi)的成員變量名稱(chēng)和父類(lèi)中的成員變量名稱(chēng)一樣,這個(gè)怎么訪問(wèn)

子類(lèi)的方法訪問(wèn)變量的查找順序:

? ·在子類(lèi)方法的局部范圍找,有就使用。

·在子類(lèi)的成員范圍找,有就使用。

·在父類(lèi)的成員范圍找,有就使用。

·找不到,就報(bào)錯(cuò)。

2.4 Super 關(guān)鍵字

不僅要輸出局部范圍的num,還要輸出本類(lèi)成員范圍的num

使用super關(guān)鍵字

this 和super的區(qū)別

this 代表本類(lèi)對(duì)應(yīng)的引用

Super 代表父親存儲(chǔ)空間的標(biāo)識(shí)(可以理解為父親引用)可以操作父親 的成員

使用方法:

A:調(diào)用成員變量

·this.成員變量 調(diào)用本類(lèi)的成員變量

·super.成員變量 調(diào)用父類(lèi)的成員變量

B:調(diào)用構(gòu)造方法

·this(...) 調(diào)用本類(lèi)的成員變量

·Super(...)調(diào)用父類(lèi)的成員變量

C:調(diào)用成員方法

·this.成員方法 調(diào)用本類(lèi)的成員方法

·super.成員方法 調(diào)用父類(lèi)的成員方法

2.5 繼承中構(gòu)造方法的關(guān)系

A:子類(lèi)中所有的構(gòu)造方法默認(rèn)都會(huì)訪問(wèn)父類(lèi)中空參數(shù)的構(gòu)造方法

B:理由:

因?yàn)樽宇?lèi)會(huì)繼承父類(lèi)中的數(shù)據(jù),可能還會(huì)使用父類(lèi)的數(shù)據(jù)

所以,子類(lèi)初始化之前,一定要先完成父類(lèi)數(shù)據(jù)的初始化

注意:子類(lèi)每一個(gè)構(gòu)造方法的第一條語(yǔ)句默認(rèn)都是:super()

如果父類(lèi)沒(méi)有無(wú)參構(gòu)造方法,那么子類(lèi)的構(gòu)造方法會(huì)出現(xiàn)什么現(xiàn)象?

報(bào)錯(cuò)

解決方法:

A:在父類(lèi)中加一個(gè)無(wú)參構(gòu)造方法

B:通過(guò)使用super關(guān)鍵字去顯示的調(diào)用父類(lèi)的帶參構(gòu)造方法

C:子類(lèi)通過(guò)this去調(diào)用本類(lèi)的其他構(gòu)造方法

子類(lèi)中一定要有一個(gè)去訪問(wèn)父類(lèi)的構(gòu)造方法,否則父類(lèi)數(shù)據(jù)就沒(méi) 有初始化。

注意事項(xiàng);

this(...)或者super(...)必須出現(xiàn)在第一條語(yǔ)句上。

否則就可能對(duì)父類(lèi)的數(shù)據(jù)進(jìn)行了多次初始化

2.6 繼承中成員方法的關(guān)系

子類(lèi)中的方法和父類(lèi)中的方法聲明一樣

通過(guò)子類(lèi)調(diào)用方法:

·先找子類(lèi)中,看有沒(méi)有這個(gè)方法,有就使用

·再看父類(lèi)中,看有沒(méi)有這個(gè)方法,有就是用

·如果沒(méi)有就報(bào)錯(cuò)(不去看父親的父親)

2.7 方法重寫(xiě)(override)

方法重寫(xiě):子類(lèi)中出現(xiàn)了和父類(lèi)中方法聲明一模一樣的方法

(區(qū)別于方法重載,方法重載僅僅是方法名一樣)

子類(lèi)重寫(xiě)的應(yīng)用:當(dāng)子類(lèi)需要父類(lèi)的功能,而功能主體子類(lèi)又有自己特有的內(nèi)容時(shí),這樣既沿襲了父類(lèi)的功能,又定義了子類(lèi)特有的功能

super.方法名(參數(shù)名); //避免重復(fù)代碼

2.8 final關(guān)鍵字

final 關(guān)鍵字聲明類(lèi)可以把類(lèi)定義為不能繼承的,即最終類(lèi);

或者用于修飾方法,該方法不能被子類(lèi)重寫(xiě):

Final修飾變量的初始化時(shí)機(jī)

·被final修飾的變量只能賦值一次

·在構(gòu)造方法完畢前(非靜態(tài)的常量)

//聲明方法
final class 類(lèi)名{//類(lèi)體}

//聲明類(lèi)
修飾符(public/private/default/protected) final 返回值類(lèi)型 方法名(){//方法體}
結(jié)尾:

如果內(nèi)容中有什么不足,或者錯(cuò)誤的地方,歡迎大家給我留言提出意見(jiàn), 蟹蟹大家 !^_^

如果能幫到你的話(huà),那就來(lái)關(guān)注我吧!

在這里的我們素不相識(shí),卻都在為了自己的夢(mèng)而努力 ?

一個(gè)堅(jiān)持推送原創(chuàng)Java技術(shù)的公眾號(hào):理想二旬不止

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/74671.html

相關(guān)文章

  • 【面試】Java基礎(chǔ)那些-Two

    摘要:前言面試中對(duì)于技術(shù)職位,一般分筆試與面談,如果面試官的一些小問(wèn)題你可以立馬找到對(duì)應(yīng)的知識(shí)點(diǎn)擴(kuò)展開(kāi)來(lái),那么這就是你的優(yōu)勢(shì),本系列將講述一些面試中的事,不會(huì)很詳細(xì),但是應(yīng)該比較全面吧。 前言 面試中對(duì)于技術(shù)職位,一般分筆試與面談,如果面試官的一些小問(wèn)題你可以立馬找到對(duì)應(yīng)的知識(shí)點(diǎn)擴(kuò)展開(kāi)來(lái),那么這就是你的優(yōu)勢(shì),本系列將講述一些java面試中的事,不會(huì)很詳細(xì),但是應(yīng)該比較全面吧。 主要內(nèi)容 pa...

    you_De 評(píng)論0 收藏0
  • 關(guān)于CSS Reset 那些(四)之 構(gòu)架CSS基礎(chǔ)樣式庫(kù)

    摘要:現(xiàn)在回到我們這一章節(jié)的標(biāo)題,將它做下補(bǔ)充關(guān)于那些事四之基于構(gòu)架基礎(chǔ)樣式庫(kù)基礎(chǔ)庫(kù)構(gòu)思為什么要做基礎(chǔ)庫(kù)我上一章節(jié)的末尾拋出了幾個(gè)問(wèn)題假設(shè)你要做一個(gè)游戲單頁(yè)面,網(wǎng)頁(yè)上并不存在表單內(nèi)容,那么你就要移除一些冗余的代碼,開(kāi)始自定義樣式來(lái)滿(mǎn)足自己的需求。 前言 先來(lái)回顧一下前幾章節(jié),我們都說(shuō)了哪些內(nèi)容: CSS Reset 歷史 與 Normalize.css 介紹 Normalize.css...

    mj 評(píng)論0 收藏0
  • 關(guān)于CSS Reset 那些(四)之 構(gòu)架CSS基礎(chǔ)樣式庫(kù)

    摘要:現(xiàn)在回到我們這一章節(jié)的標(biāo)題,將它做下補(bǔ)充關(guān)于那些事四之基于構(gòu)架基礎(chǔ)樣式庫(kù)基礎(chǔ)庫(kù)構(gòu)思為什么要做基礎(chǔ)庫(kù)我上一章節(jié)的末尾拋出了幾個(gè)問(wèn)題假設(shè)你要做一個(gè)游戲單頁(yè)面,網(wǎng)頁(yè)上并不存在表單內(nèi)容,那么你就要移除一些冗余的代碼,開(kāi)始自定義樣式來(lái)滿(mǎn)足自己的需求。 前言 先來(lái)回顧一下前幾章節(jié),我們都說(shuō)了哪些內(nèi)容: CSS Reset 歷史 與 Normalize.css 介紹 Normalize.css...

    Yu_Huang 評(píng)論0 收藏0
  • 【JS基礎(chǔ)】原型對(duì)象那些(一)

    摘要:通過(guò)同一個(gè)構(gòu)造函數(shù)實(shí)例化的多個(gè)實(shí)例對(duì)象具有同一個(gè)原型對(duì)象。所以當(dāng)給原型對(duì)象賦值一個(gè)新對(duì)象時(shí),切記將原型對(duì)象的指回原構(gòu)造函數(shù)以上就是本次分享的內(nèi)容,關(guān)于原型對(duì)象的其他知識(shí),下一篇基礎(chǔ)原型對(duì)象的那些事二會(huì)講到。 談起js的基礎(chǔ),繞不過(guò)去的坎就是:原型鏈、作用域鏈、this(em...好吧,還有閉包),今天總結(jié)一下關(guān)于原型對(duì)象的一些知識(shí),供自己和大家復(fù)習(xí)。 概念理解 什么是原型對(duì)象呢?有以下...

    edgardeng 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<