[Python]面向?qū)ο笾^承的意義和操作過程(轉(zhuǎn))

1.什么是繼承颗圣?繼承有什么用處?

? ? ? ?在OOP程序設(shè)計(jì)中句伶,當(dāng)我們定義一個class的時(shí)候蚂且,可以從某個現(xiàn)有的class繼承,新的class稱為子類(Subclass)毛俏,而被繼承的class稱為基類炭庙、父類或超類(Base class、Super class)煌寇。

比如焕蹄,我們已經(jīng)編寫了一個名為Animal的class,有一個run()方法可以直接打臃堋:

class Animal(object):

? ? ? ?def run(self):

? ? ? ? ? ? ?print 'Animal is running...'

當(dāng)我們需要編寫Dog和Cat類時(shí)腻脏,就可以直接從Animal類繼承:

class Dog(Animal):

? ? ?pass

class Cat(Animal):

? ? ?pass

對于Dog來說,Animal就是它的父類银锻,對于Animal來說永品,Dog就是它的子類。Cat和Dog類似徒仓。

繼承有什么好處腐碱?

? ? ? ?最大的好處是子類獲得了父類的全部功能誊垢。由于Animial實(shí)現(xiàn)了run()方法掉弛,因此,Dog和Cat作為它的子類喂走,什么事也沒干殃饿,就自動擁有了run()方法:

dog = Dog()

dog.run()

cat = Cat()

cat.run()

運(yùn)行結(jié)果如下:

Animal is running...

Animal is running...

當(dāng)然,也可以對子類增加一些方法芋肠,比如Dog類:

class Dog(Animal):

? ? ? ?def run(self):

? ? ? ? ? ? ? ?print 'Dog is running...'

? ? ? ?def eat(self):

? ? ? ? ? ? ? ?print 'Eating meat...'

繼承的第二個好處需要我們對代碼做一點(diǎn)改進(jìn)乎芳。你看到了,無論是Dog還是Cat帖池,它們r(jià)un()的時(shí)候奈惑,顯示的都是Animal is running...,符合邏輯的做法是分別顯示Dog is running...和Cat is running...睡汹,因此肴甸,對Dog和Cat類改進(jìn)如下:

class Dog(Animal):

? ? ? ?def run(self):

? ? ? ? ? ? ?print 'Dog is running...'

class Cat(Animal):

? ? ? def run(self):

? ? ? ? ? ? print 'Cat is running...'

再次運(yùn)行,結(jié)果如下:

Dog is running...

Cat is running...

當(dāng)子類和父類都存在相同的run()方法時(shí)囚巴,我們說原在,子類的run()覆蓋了父類的run()友扰,在代碼運(yùn)行的時(shí)候,總是會調(diào)用子類的run()庶柿。這樣村怪,我們就獲得了繼承的另一個好處:多態(tài)

2.繼承的意義是什么

繼承是面向?qū)ο蟪绦蛟O(shè)計(jì)的三大特征(封裝浮庐、繼承和多態(tài))之一甚负,不具有繼承功能的語言不能稱之為面向?qū)ο蟪绦蛟O(shè)計(jì)語言(如VB),繼承具有如下特點(diǎn):繼承劃分了類的層次性兔辅,父類代表的是更一般腊敲、更泛化的類,而子類則是更為具體维苔、更為細(xì)化碰辅;繼承是實(shí)現(xiàn)代碼重用、擴(kuò)展軟件功能的重要手段介时,子類中與父類完全相同的屬性和方法不必重寫没宾,只需寫出新增或改寫的內(nèi)容,這就是說子類可以復(fù)用父類的內(nèi)容沸柔,不必一切從零開始循衰。java只支持單一繼承,多重繼承要利用接口來實(shí)現(xiàn)褐澎。而Python支持多繼承会钝。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市工三,隨后出現(xiàn)的幾起案子迁酸,更是在濱河造成了極大的恐慌,老刑警劉巖俭正,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件奸鬓,死亡現(xiàn)場離奇詭異,居然都是意外死亡掸读,警方通過查閱死者的電腦和手機(jī)串远,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來儿惫,“玉大人澡罚,你說我怎么就攤上這事∩銮耄” “怎么了留搔?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長筐喳。 經(jīng)常有香客問我催式,道長函喉,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任荣月,我火速辦了婚禮管呵,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘哺窄。我一直安慰自己捐下,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布萌业。 她就那樣靜靜地躺著坷襟,像睡著了一般。 火紅的嫁衣襯著肌膚如雪生年。 梳的紋絲不亂的頭發(fā)上婴程,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機(jī)與錄音抱婉,去河邊找鬼档叔。 笑死,一個胖子當(dāng)著我的面吹牛蒸绩,可吹牛的內(nèi)容都是我干的衙四。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼患亿,長吁一口氣:“原來是場噩夢啊……” “哼传蹈!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起步藕,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤惦界,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后漱抓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體表锻,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恕齐,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年乞娄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片显歧。...
    茶點(diǎn)故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡仪或,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出士骤,到底是詐尸還是另有隱情范删,我是刑警寧澤,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布拷肌,位于F島的核電站到旦,受9級特大地震影響旨巷,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜添忘,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一采呐、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧搁骑,春花似錦斧吐、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至乏冀,卻和暖如春蝶糯,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背辆沦。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工裳涛, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人众辨。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓端三,卻偏偏與公主長得像,于是被迫代替她去往敵國和親鹃彻。 傳聞我的和親對象是個殘疾皇子郊闯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評論 2 351

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