1. 程式人生 > 其它 >Python快速學習——類的繼承

Python快速學習——類的繼承

技術標籤:程式語言基礎快速入門python面向物件程式設計

接上一篇https://blog.csdn.net/weixin_41823258/article/details/112503230

1,繼承

什麼叫繼承呢?我們平時經常說,某人繼承了媽媽的雙眼皮,這是基因層面的繼承。類的繼承也是如此,一個類繼承另一個類,和孩子在基因層面繼承父母特徵一樣,繼承的同時又有些新增的特徵。

被繼承的類叫Parent,繼承的類叫child。沒錯,就是父母和子女的關係。
我們設定一個“狗”類,給它設定一個子類,比如泰迪或者柯基。泰迪或者柯基都是狗,都具有狗的一般特點,但是具體有不同,比如柯基的屬性是小短腿,泰迪的屬性捲毛、棕色等。

class Dog():
    def __init__(self,age):
        self.age = age

    def bark(self):
        print("Woof!Woof!Woof!")
class Corgi(Dog):
    def __init__(self,age):
        self.age = 1
    def roll(self):
        print("Gulugulu!")

puppy1 = Corgi(21)
puppy1.bark()
puppy1.roll()

我們可以觀察到,父類Dog中,定義了一個狗的年齡,定義了一個方法叫Bark。所有的狗都有年齡,也都會叫。然後我們定義了一個柯基Corgi子類,繼承了父類Dog的全部屬性,同時具有一個打滾的屬性,是父類沒有的新增屬性。

如果大家有興趣,可以多定義幾種狗的子類,再多例項幾隻不同的狗。

2.重寫父類的方法

有句話叫“取其精華,去其糟粕”,程式設計也如此,我們想讓這個子類繼承父類的優秀傳統,而如果父類有些屬性,子類並不需要,那麼怎麼辦呢?

當然是重寫了!

上程式碼,我們知道父類Dog()有個bark屬性,例項狗狗會發出三聲“woof!”,但我們不想讓這個子類繼續這樣叫,我們想給小狗狗換個叫聲,可行嗎?

直接上程式碼。run一下程式碼,看看我們創造的叫puppy1的狗狗會怎樣叫?

class Dog():
    def __init__(self,age):
        self.age = age

    def bark(self):
        print("Woof!Woof!Woof!")
class Corgi(Dog):
    def __init__(self,age):
        self.age = 1
    #改寫父類的bark屬性
    def bark(self):
        print("Wuwuwuw!")
    def roll(self):
        print("Gulugulu!")

puppy1 = Corgi(21)
puppy1.bark()
puppy1.roll()在這裡插入程式碼片

結果給大家看下吧!

在這裡插入圖片描述
說明我們對父類屬性的重寫是成功的。
好了,下次再見!