1. 程式人生 > 其它 >Python入門基礎篇 No.81 —— super()獲得父類定義_多型

Python入門基礎篇 No.81 —— super()獲得父類定義_多型

技術標籤:# 基礎多型程式語言python面向物件程式設計windows

Python入門基礎篇 No.81 —— super()獲得父類定義_多型


文章目錄

前生篇:重寫__str__()方法_多重繼承_MRO()


前言

在這裡插入圖片描述


一、super()獲得父類定義

  • 在子類中,如果想要獲得父類的方法時,我們可以通過 super()來做。
  • super()代表父類的定義,不是父類物件。

程式碼演示:

# super()
class A:
    def say(self)
: print('A:', self) print('say A') class B(A): def say(self): # A.say(self) 呼叫父類的say方法 super().say() # 通過super()呼叫父類的方法 print('say B') b = B() b.say() ------------------------ A: <__main__.B object at 0x000002DA1D5962B0> say A say B

在這裡插入圖片描述

二、多型

  • 多型(polymorphism)是指同一個方法呼叫由於物件不同可能會產生不同的行為。在現實生活中,我們有很多例子。比如:同樣是呼叫人的休息方法,張三的休息是睡覺,李四的休息是玩遊戲,程式設計師是敲程式碼。同樣是吃飯的方法,中國人用筷子吃飯,英國人用刀叉吃飯,印度人用手吃飯。
  • 關於多型要注意以下 2 點:

1.多型是方法的多型,屬性沒有多型。
2.多型的存在有 2 個必要條件:繼承、方法重寫。

程式碼演示:

# 多型
class Animal:
    def shout(self):
        print("動物的叫聲")


class Dog(Animal):
    def shout(self):
        print("小狗,汪汪汪")


class Cat(Animal):
    def shout(self):
        print("小貓,喵喵喵")


def animal_shout
(a): if isinstance(a, Animal): a.shout() # 傳入的物件不同,shout方法對應的實際行為也不同。 animal_shout(Dog()) animal_shout(Cat()) ---------------------------------- 小狗,汪汪汪 小貓,喵喵喵

在這裡插入圖片描述


總結

以上幫各位總結好了,收藏,關注即可查收。

前生篇:重寫__str__()方法_多重繼承_MRO()


關注下方公眾號,免費拿Python學習資料!!!

在這裡插入圖片描述