您好,登錄后才能下訂單哦!
一,繼承的概念
繼承是java面向?qū)ο缶幊碳夹g(shù)的一塊基石,因?yàn)樗试S創(chuàng)建分等級(jí)層次的類(lèi)。
繼承就是子類(lèi)繼承父類(lèi)的特征和行為,OA信用盤(pán)盤(pán)口搭建架設(shè)bbs.yasewl.com(Q_917899899)使得子類(lèi)對(duì)象(實(shí)例)具有父類(lèi)的實(shí)例字段,或子類(lèi)從父類(lèi)繼承方法,使得子類(lèi)具有父類(lèi)相同的行為。父類(lèi)更通用,子類(lèi)更具體。
Java在實(shí)現(xiàn)繼承的手段上與其它面向?qū)ο笳Z(yǔ)言存在著較大的差異。在Java中,所有的繼承都是公有繼承。
超類(lèi)和子類(lèi)是Java程序員最常用的兩個(gè)術(shù)語(yǔ)。其它術(shù)語(yǔ)為基類(lèi)、祖先類(lèi)、父類(lèi);派生類(lèi)、(孩)子類(lèi)。
子類(lèi)和父類(lèi)之間,“is-a”是繼承的一個(gè)明顯特征,是一個(gè)用來(lái)判斷是否應(yīng)該設(shè)計(jì)為繼承關(guān)系的簡(jiǎn)單規(guī)則,它表明子類(lèi)的每個(gè)對(duì)象也是超類(lèi)的對(duì)象?!癷s-a”規(guī)則的另一個(gè)表述法是置換法則,它表明程序中出現(xiàn)超類(lèi)對(duì)象的任何地方都可以用子類(lèi)對(duì)象置換。
前綴“超”和“子”來(lái)源于計(jì)算機(jī)科學(xué)和數(shù)學(xué)理論中的集合語(yǔ)言的術(shù)語(yǔ)。
例如:雇員集合是經(jīng)理集合的超集,也可以說(shuō),經(jīng)理集合是雇員集合的子集。
this和super的區(qū)別:
this和super都是Java的關(guān)鍵字,具有特殊的語(yǔ)義。
1、this
1)this是Java的關(guān)鍵字,具有特殊的語(yǔ)義。
2)this是編譯器自動(dòng)加入實(shí)例方法的隱式引用形參,是一個(gè)對(duì)該類(lèi)或該類(lèi)派生類(lèi)實(shí)例對(duì)象的引用形參。
3)形參不能與this同名。
4)局部變量不能與this同名。
5)this的類(lèi)型是該類(lèi)的類(lèi)型。
6)this的值是在調(diào)用實(shí)例方法時(shí)刻被確定的。
7)this的值是只讀的,不能更改;但是可以將this賦予另一個(gè)對(duì)象變量。
8)this的使用:this.field、 this.method()、this()
重要提示:在本類(lèi)構(gòu)造器中,使用this(..)調(diào)用本類(lèi)其它構(gòu)造器的語(yǔ)句必須是本類(lèi)構(gòu)造器的第一條語(yǔ)句。
2、super 通過(guò)super關(guān)鍵字來(lái)實(shí)現(xiàn)對(duì)父類(lèi)成員的訪問(wèn)
1)super 是Java的關(guān)鍵字,具有特殊的語(yǔ)義。
2)super只是一個(gè)指示編譯器調(diào)用超類(lèi)成員的特有的關(guān)鍵字。因?yàn)閟uper不是一個(gè)對(duì)象的真實(shí)引用,不能將super賦予另一個(gè)對(duì)象變量。
3)形參不能與super同名。
4)局部變量不能與super同名。
5)可以理解為super的類(lèi)型是該類(lèi)的父類(lèi)類(lèi)型。
6)可以理解為super的值是 super = (superclass) this。
7)可以理解為super的值是只讀的,不能更改;
8)super的使用:super.field、 super.method()、super()。
重要提示:
1、super.method() 告知Java編譯器,super調(diào)用的超類(lèi)方法,進(jìn)行靜態(tài)綁定,不會(huì)出現(xiàn)多態(tài)。
2、 在子類(lèi)構(gòu)造器中,使用super(..)調(diào)用超類(lèi)構(gòu)造器的語(yǔ)句必須是子類(lèi)構(gòu)造器的第一條語(yǔ)句。
3、如果子類(lèi)的構(gòu)造器沒(méi)有顯示地調(diào)用超類(lèi)的構(gòu)造器super(..)、
本類(lèi)的構(gòu)造器this(..),則將自動(dòng)調(diào)用超類(lèi)默認(rèn)的構(gòu)造器(沒(méi)有參數(shù)的構(gòu)造器super()),如果超類(lèi)沒(méi)有默認(rèn)的構(gòu)造器,則Java編譯器將報(bào)告語(yǔ)法錯(cuò)誤。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。