Python學習筆記七 (繼承漓摩,重寫)

繼承

程序是什么养葵?程序是用來解決實際問題的,也可以說是對現(xiàn)實世界的一種量化,一種現(xiàn)實世界的映射背桐。
在實際生活中有子承父業(yè)的說法刘陶,在程序世界中有沒有呢?答案是有的牢撼。

什么是繼承

子承父業(yè)是繼承匙隔,繼承是一種關(guān)系,兩個人之間的關(guān)系熏版。在程序世界中的映射是怎樣的呢纷责?程序中的繼承也是一種關(guān)系,是兩個類之間的關(guān)系撼短。既然是兩個類之間的關(guān)系再膳,就需要確定一下繼承順序,類比現(xiàn)實世界曲横,程序中的被繼承者類稱為父類或基類喂柒,繼承者類稱為子類或派生類。

繼承的格式


class Animal(object):  
    pass

# class 類名(父類名):
#    方法列表 


所有的類都繼承 object 類禾嫉,object 類是所有類的父類或基類灾杰。

單繼承

什么是單繼承

單繼承,只有一個直接父類的類熙参,稱為單繼承艳吠。


class 類名(父類名):  
    pass


多繼承

與單繼承相對的是單繼承,有多個直接父類孽椰,稱為多繼承


class 類名(父類名1昭娩,父類名2,父類名3.... 父類名n):  
    pass


多層繼承

多層繼承和多繼承的區(qū)別 多繼承黍匾,橫向栏渺,就像是一片地上有很多高樓一樣。多層繼承锐涯,縱向磕诊,一棟高樓有很多層。


class Animal(object):
    pass

class Dog(Animal):
    pass


多層繼承

Dog 繼承自 Animal全庸,Animal繼承自 object秀仲,object 是所有類的父類

重寫

方法的重寫

什么是重寫

在子類中創(chuàng)建一個方法,和父類中的某個方法同名壶笼,就是重寫(方法的重寫或方法的覆寫)


class Animal(object):
    def eat(self):
        print("動物吃東西")


class Dog(Animal):
    def eat(self):
        print("狗吃東西")


dog = Dog()
dog.eat()  # 默認調(diào)用子類的方法

# 結(jié)果為:
# 狗吃東西


重寫的作用

當父類中的方法不符合我們的需求時,可以通過重寫雁刷,實現(xiàn)我們的需求覆劈。

方法可以重寫,屬性可不可以重寫?答案是可以的

屬性的重寫


class Animal(object):
    def __init__(self):
        self.age = 120


class Dog(Animal):
    def __init__(self):
        self.age = 12


dog = Dog()
print("狗狗的年齡%d " % dog.age)  # 默認調(diào)用子類的屬性

# 結(jié)果為:
# 狗狗的年齡12 


調(diào)用父類的方法

重寫之后责语,如果發(fā)現(xiàn)父類的方法還有價值炮障,可以調(diào)用父類的方法

通過父類名強制調(diào)用

一般用于多繼承


class Animal(object):
    def __init__(self):
        self.age = 120

    def eat(self):
        print("動物吃東西")


class Dog(Animal):
    def __init__(self):
        self.age = 12

    def eat(self):
        print("狗吃東西")
        Animal.eat(self)  # 在重寫的方法內(nèi)強制調(diào)用 父類名.父類方法名()   如果需要參數(shù),則需要傳參


dog = Dog()
dog.eat()  

# 結(jié)果為:
# 狗吃東西
# 動物吃東西


super() 兼容版

python2坤候、python3 都可用


class Animal(object):
    def __init__(self):
        self.age = 120

    def eat(self):
        print("動物吃東西")


class Dog(Animal):
    def __init__(self):
        self.age = 12

    def eat(self):
        print("狗吃東西")
        
        # 兼容版 super(子類名, 子類對象).父類方法()   如果需要參數(shù)胁赢,則需要傳參      
        super(Dog, self).eat()  


dog = Dog()
dog.eat()

# 結(jié)果為:
# 狗吃東西
# 動物吃東西


super()

python3 專屬


class Animal(object):
    def __init__(self):
        self.age = 120

    def eat(self):
        print("動物吃東西")


class Dog(Animal):
    def __init__(self):
        self.age = 12

    def eat(self):
        print("狗吃東西")
        super().eat()  #  super().方法名()    如果需要參數(shù),則需要傳參


dog = Dog()
dog.eat()

# 結(jié)果為:
# 狗吃東西
# 動物吃東西



到此結(jié) ? DragonFang ? 2018.4.12

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末白筹,一起剝皮案震驚了整個濱河市智末,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌徒河,老刑警劉巖系馆,帶你破解...
    沈念sama閱讀 219,270評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異顽照,居然都是意外死亡由蘑,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評論 3 395
  • 文/潘曉璐 我一進店門代兵,熙熙樓的掌柜王于貴愁眉苦臉地迎上來尼酿,“玉大人,你說我怎么就攤上這事植影∥矫剑” “怎么了?”我有些...
    開封第一講書人閱讀 165,630評論 0 356
  • 文/不壞的土叔 我叫張陵何乎,是天一觀的道長句惯。 經(jīng)常有香客問我,道長支救,這世上最難降的妖魔是什么抢野? 我笑而不...
    開封第一講書人閱讀 58,906評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮各墨,結(jié)果婚禮上指孤,老公的妹妹穿的比我還像新娘。我一直安慰自己贬堵,他們只是感情好恃轩,可當我...
    茶點故事閱讀 67,928評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著黎做,像睡著了一般叉跛。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蒸殿,一...
    開封第一講書人閱讀 51,718評論 1 305
  • 那天筷厘,我揣著相機與錄音鸣峭,去河邊找鬼。 笑死酥艳,一個胖子當著我的面吹牛摊溶,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播充石,決...
    沈念sama閱讀 40,442評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼莫换,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了骤铃?” 一聲冷哼從身側(cè)響起拉岁,我...
    開封第一講書人閱讀 39,345評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎劲厌,沒想到半個月后膛薛,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡补鼻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,984評論 3 337
  • 正文 我和宋清朗相戀三年哄啄,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片风范。...
    茶點故事閱讀 40,117評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡咨跌,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出硼婿,到底是詐尸還是另有隱情锌半,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評論 5 346
  • 正文 年R本政府宣布寇漫,位于F島的核電站刊殉,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏州胳。R本人自食惡果不足惜记焊,卻給世界環(huán)境...
    茶點故事閱讀 41,462評論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望栓撞。 院中可真熱鬧遍膜,春花似錦、人聲如沸瓤湘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,011評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽弛说。三九已至挽懦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間剃浇,已是汗流浹背巾兆。 一陣腳步聲響...
    開封第一講書人閱讀 33,139評論 1 272
  • 我被黑心中介騙來泰國打工猎物, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留虎囚,地道東北人角塑。 一個月前我還...
    沈念sama閱讀 48,377評論 3 373
  • 正文 我出身青樓,卻偏偏與公主長得像淘讥,于是被迫代替她去往敵國和親圃伶。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,060評論 2 355

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

  • 第6章 繼承與多態(tài) 學習目標 了解繼承的目的 了解繼承與多態(tài)的關(guān)系 知道如何重寫方法 認識java.lang.Ob...
    默然說話_牟勇閱讀 607評論 0 0
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法蒲列,類相關(guān)的語法窒朋,內(nèi)部類的語法,繼承相關(guān)的語法蝗岖,異常的語法侥猩,線程的語...
    子非魚_t_閱讀 31,643評論 18 399
  • 我總是喜歡在成功的人,或者是牛人的身上找其優(yōu)點抵赢,并加以學習欺劳。但這兩天一個人做的事,明明是優(yōu)點铅鲤,但就是感覺學不來划提,而...
    蘆權(quán)閱讀 507評論 0 1
  • Given a collection of integers that might contain duplica...
    Eazow閱讀 147評論 0 0
  • 博爾赫斯的《我的一生》:我曾遠渡重洋,踏上過許多地方邢享,見過一個女人和兩三個男人鹏往。 這就是你:誤解著生活而別人對它的...
    妖艷小白兔閱讀 1,096評論 3 1