再談繼承的意義和操作過程

繼承的意義

? ? ? ? ?繼承是面向?qū)ο蠹夹g(shù)的重要內(nèi)容磺平,有了繼承魂仍,使軟件的重用成為可能。

? ? ? ? ?過去褪秀,軟件人員開發(fā)新的軟件蓄诽,能從已有的軟件中直接選用完全符合要求的部件不多,一般都要進(jìn)行許多修改才能使用媒吗,實(shí)際上有相當(dāng)部分要重新編寫仑氛,工作量很大≌⒂ⅲ縮短軟件開發(fā)過程的關(guān)鍵是鼓勵(lì)軟件重用锯岖。繼承機(jī)制解決了這個(gè)問題。編寫面向?qū)ο蟮某绦驎r(shí)要把注意力放在實(shí)現(xiàn)對(duì)自己有用的類上面甫何,對(duì)已有的類加以整理和分類出吹,進(jìn)行剪裁和修改,在此基礎(chǔ)上集中精力編寫派生類新增加的部分辙喂,使這些類能夠被程序設(shè)計(jì)的許多領(lǐng)域使用捶牢。

? ? ? ? ?由于繼承的機(jī)制,這就吸引了許多人開發(fā)各類實(shí)用的類庫巍耗。用戶將它們作為基類去建立適合于自己的類(即派生類)秋麸,并在此基礎(chǔ)上設(shè)計(jì)自己的應(yīng)用程序。類庫的出現(xiàn)使得軟件的重用更加方便

? ? ? ? ? 人們?yōu)槭裁催@么看重繼承炬太,要求在軟件開發(fā)中使用繼承機(jī)制灸蟆,盡可能地通過繼承建立一批新的類?為什么不是將已有的類加以修改亲族,使之滿足自己應(yīng)用的要求呢炒考?

歸納起來可缚,有以下幾個(gè)原因

? ? ? ? 有許多基類是被程序的其他部分或其他程序使用的,這些程序要求保留原有的 基類不受破壞斋枢。使用繼承是建立新的數(shù)據(jù)類型帘靡,它繼承了基類的所有特征,但不改變基類本身杏慰〔饽基類的名稱、構(gòu)成和訪問屬性絲毫沒有改變缘滥,不會(huì)影響其他程序的使用轰胁。。

? ? ? ? ?許多基類是專門作為基類設(shè)計(jì)的朝扼。有些基類可能并沒有什么獨(dú)立的功能赃阀,只是一個(gè)框架,或者說是抽象類擎颖。人們根據(jù)需要設(shè)計(jì)了一批能適用于不同用途的通用類榛斯,目的是建立通用的數(shù)據(jù)結(jié)構(gòu),以便在此基礎(chǔ)上添加各種功能搂捧,從而建立各種功能的派生類驮俗。

? ? ? ? ? 在面向?qū)ο蟪绦蛟O(shè)計(jì)中,需要設(shè)計(jì)類的層次結(jié)構(gòu)允跑,從最初的抽象類出發(fā)王凑,每一層派生類的建立都逐步地向著目標(biāo)的具體實(shí)現(xiàn)前進(jìn),換句話說聋丝,是不斷地從抽象到具體的過程索烹。每一層的派生和繼承都需要站在整個(gè)系統(tǒng)的角度統(tǒng)一規(guī)劃,精心組織弱睦。

Python中繼承的過程

繼承的語法

class類型(被繼承的類型):

? ? ? ? ? ?pass

繼承中出現(xiàn)的術(shù)語:

父類:被繼承的類百姓,也稱為基類、超類

子類:當(dāng)前類况木,也稱為派生類

子類繼承父類垒拢,體現(xiàn)的時(shí)A is a B的關(guān)系

子類繼承父類,就可以使用父類中所有的公開的屬性和方法

繼承鏈:

A繼承B火惊,B繼承C子库,C繼承D

A直接繼承了B,間接繼承了C,D矗晃;此時(shí)A創(chuàng)建的對(duì)象,可以同時(shí)使用B,C,D中所有公開的屬性和方法

多繼承:

python中宴倍,一個(gè)類型张症,可以同時(shí)繼承多個(gè)類型仓技,同時(shí)擁有所有繼承類型的所有公開的屬性和方法

備注:在進(jìn)行代碼設(shè)計(jì)的過程中,可能會(huì)出現(xiàn)多繼承俗他,所以盡量不要在父類中定義相同名稱的屬性或者方法

備注2:如果父類中出現(xiàn)了相同名稱的屬性和方法脖捻,在使用的時(shí)候子類調(diào)用時(shí)會(huì)優(yōu)先繼承優(yōu)先調(diào)用。

方法重寫:

子類在自己類中重新定義父類中已經(jīng)存在的方法兆衅,在執(zhí)行該方法時(shí)地沮,如果子類中沒有重寫就直接調(diào)用父類的方法,如果子類重寫了該方法羡亩,就直接調(diào)用子類重寫的方法摩疑!

擴(kuò)展:子類中,訪問父類的屬性和方法:

classUser(Person):

? ? ? ? ? ? ?def__init__(self, name, age):

? ? ? ? ?? ? ? ? ? ? ? ?#直接通過父類的類名稱調(diào)用父類的屬性和方法

? ? ? ? ? ? ? ? ? ? ? ? Person.__init__(name, age)

? ? ? ? ? ? ? ? ? ? ? ? #通過super()來調(diào)用父類的屬性和方法

? ? ? ? ? ? ? ? ? ? ? ? super().__init__(name, age)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末畏铆,一起剝皮案震驚了整個(gè)濱河市雷袋,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌辞居,老刑警劉巖楷怒,帶你破解...
    沈念sama閱讀 217,509評(píng)論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異瓦灶,居然都是意外死亡鸠删,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,806評(píng)論 3 394
  • 文/潘曉璐 我一進(jìn)店門贼陶,熙熙樓的掌柜王于貴愁眉苦臉地迎上來刃泡,“玉大人,你說我怎么就攤上這事每界⊥苯” “怎么了?”我有些...
    開封第一講書人閱讀 163,875評(píng)論 0 354
  • 文/不壞的土叔 我叫張陵眨层,是天一觀的道長(zhǎng)庙楚。 經(jīng)常有香客問我,道長(zhǎng)趴樱,這世上最難降的妖魔是什么馒闷? 我笑而不...
    開封第一講書人閱讀 58,441評(píng)論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮叁征,結(jié)果婚禮上纳账,老公的妹妹穿的比我還像新娘。我一直安慰自己捺疼,他們只是感情好疏虫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,488評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般卧秘。 火紅的嫁衣襯著肌膚如雪呢袱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,365評(píng)論 1 302
  • 那天翅敌,我揣著相機(jī)與錄音羞福,去河邊找鬼。 笑死蚯涮,一個(gè)胖子當(dāng)著我的面吹牛治专,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播遭顶,決...
    沈念sama閱讀 40,190評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼张峰,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了液肌?” 一聲冷哼從身側(cè)響起挟炬,我...
    開封第一講書人閱讀 39,062評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎嗦哆,沒想到半個(gè)月后谤祖,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,500評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡老速,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,706評(píng)論 3 335
  • 正文 我和宋清朗相戀三年粥喜,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片橘券。...
    茶點(diǎn)故事閱讀 39,834評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡额湘,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出旁舰,到底是詐尸還是另有隱情锋华,我是刑警寧澤,帶...
    沈念sama閱讀 35,559評(píng)論 5 345
  • 正文 年R本政府宣布箭窜,位于F島的核電站毯焕,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏磺樱。R本人自食惡果不足惜纳猫,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,167評(píng)論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望竹捉。 院中可真熱鬧芜辕,春花似錦、人聲如沸块差。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,779評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至询兴,卻和暖如春乃沙,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背诗舰。 一陣腳步聲響...
    開封第一講書人閱讀 32,912評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留训裆,地道東北人眶根。 一個(gè)月前我還...
    沈念sama閱讀 47,958評(píng)論 2 370
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像边琉,于是被迫代替她去往敵國(guó)和親属百。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,779評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法变姨,類相關(guān)的語法族扰,內(nèi)部類的語法,繼承相關(guān)的語法定欧,異常的語法傻粘,線程的語...
    子非魚_t_閱讀 31,631評(píng)論 18 399
  • 繼承和多態(tài) 1. 繼承的優(yōu)缺點(diǎn) 優(yōu)點(diǎn):(1)子類可以靈活地改變父類中的已有方法金吗;(2)能夠最大限度的實(shí)現(xiàn)代碼重用。...
    MinoyJet閱讀 625評(píng)論 0 0
  • (一)Java部分 1、列舉出JAVA中6個(gè)比較常用的包【天威誠信面試題】 【參考答案】 java.lang;ja...
    獨(dú)云閱讀 7,104評(píng)論 0 62
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理劈猪,服務(wù)發(fā)現(xiàn),斷路器证芭,智...
    卡卡羅2017閱讀 134,654評(píng)論 18 139
  • 繼承是子對(duì)象可以繼承父對(duì)象的屬性和行為煤傍,亦即父對(duì)象擁有的屬性和行為,其子對(duì)象也就擁有了這些屬性和行為饭弓,一個(gè)類型繼承...
    惡人未滿閱讀 305評(píng)論 0 0