物件導向三大特性之多型性

2022-08-17 00:15:11 字數 1289 閱讀 3988

官方解釋:多個不同類物件可以響應同乙個方法,產生不同的結果

多型不是一種特殊的語法,而是一種狀態,特性

class animal:

def __init__(self, name, walk_way):

self.name = name

self.walk_way = walk_way

def walk(self):

print(f'用走路!')

class person(animal):

pass

class pig(animal):

pass

george = person('george', '兩條腿')

pig = pig('小明家養的豬', '四條腿')

george.walk()

pig.walk()

# george用兩條腿走路!

# 小明家養的豬用四條腿走路!

提高**的復用性

對於使用者而言,大大降低了使用難度

介面、抽象類、鴨子型別,都可以寫出具備多型的**,最簡單的就是鴨子型別

"""

要管理 雞 鴨 鵝

如何能夠最方便的 管理,就是我說同一句話,他們都能理解

既它們擁有相同的方法

"""class ji:

def bark(self):

print("哥哥哥")

def spawn(self):

print("下雞蛋..")

class duck:

def bark(self):

print("嘎嘎嘎")

def spawn(self):

print("下鴨蛋")

class e:

def bark(self):

print("餓餓餓....")

def spawn(self):

print("下鵝蛋..")

j = ji()

y = duck()

e = e()

def mange(obj):

obj.spawn()

mange(j)

mange(y)

mange(e)

# python中到處都有多型,都使用type函式但返回結果不一樣

a = 10

b = "10"

c = [10]

print(type(a))

print(type(b))

print(type(c))

物件導向之多型 多型性

一 多型 多型指的是一類事物有多種形態 動物有多種形態 人,狗,豬 import abcclass animal metaclass abc.abcmeta 同一類事物 動物 abc.abstractmethod deftalk self pass class people animal 動物的形態...

物件導向三大特性之多型

多型 同乙個物件在不同時刻表現出來的不同狀態。多型的前提和體現 存在繼承關係或者實現關係 這裡的實現是指介面間的關係 有方法的重寫。有父類引用指向子類物件。多型中成員的訪問特點 訪問成員變數時 首先定義乙個動物類 其次定義乙個子類來繼承它 定義乙個測試類 由此可見當我們用多型的形式去訪問類中的成員變...

物件導向三大特性之多型

本想自己寫 但是發現乙個更好的。抽象類的多型 場景描述 一位剛畢業的老師,目前只能通過騎車上班,多年後終於坐騎公升級了,有了自己的小汽車,於是騎著小汽車上班。騎自行車上班 1.自行車類 public class bike public void stop 2.教師類 public class tea...