py 多型的理解

2022-03-12 16:54:23 字數 1759 閱讀 2026

多型

不同的資料型別,執行相同的方法,產生的狀態不同

#!/usr/bin/env python

# coding=utf-8

class h2o:

def __init__(self, name, temp):

self.name = name

self.temp = temp

def show(self):

if self.temp < 0:

print("%s 溫度為: %s" % (self.name, self.temp))

elif 0 < self.temp < 100:

print("%s 溫度為: %s" % (self.name, self.temp))

elif self.temp > 100:

print("%s 溫度為: %s" % (self.name, self.temp))

class ice(h2o):

pass

class water(h2o):

pass

class stream(h2o):

pass

w1 = ice("冰", -10)

w2 = water("水", 25)

w3 = stream("氣", 102)

w1.show()

w2.show()

w3.show()

str和list都是type類,有共同的父類,都是執行父類的方法,只不過執行時候狀態不同.

>>> s="abc"

>>> l=[1,2,3]

>>> s.__len__()

3>>> l.__len__()

3>>>

>>> len(l) ## 呼叫__len__方法

3>>>

#!/usr/bin/env python

# coding=utf-8

class h2o:

def __init__(self, name, temp):

self.name = name

self.temp = temp

def show(self):

if self.temp < 0:

print("%s 溫度為: %s" % (self.name, self.temp))

elif 0 < self.temp < 100:

print("%s 溫度為: %s" % (self.name, self.temp))

elif self.temp > 100:

print("%s 溫度為: %s" % (self.name, self.temp))

class ice(h2o):

pass

class water(h2o):

pass

class stream(h2o):

pass

w1 = ice("冰", -10)

w2 = water("水", 25)

w3 = stream("氣", 102)

## 方法1

w1.show()

w2.show()

w3.show()

## 方法2: 提供統一api, 類似len(l)

def func(obj):

obj.show()

func(w1)

func(w2)

func(w3)

多型的理解

1.對多型的理解 同乙個物件在不同時刻體現出來的不同狀態。簡單來說就是貓和狗都是動物,但他們又有許多不同,貓和狗是動物向下延伸的不同結果,這就是多型。2.多型的前提 a 有繼承或者實現關係。b 有方法重寫。c 有父類或者父介面引用指向子類物件。3.多型的分類 a 具體類多型 class fu cla...

多型的理解

1 同乙個物件在不同時刻體現出來的不同狀態。2 多型的前提 a 有繼承或者實現關係。b 有方法重寫。c 有父類或者父介面引用指向子類物件。多型的分類 a 具體類多型 class fu class zi extends fu fu f new zi b 抽象類多型 abstract class fu ...

多型的理解

多型 事物執行過程中存在不同的狀態 多型存在的條件 必須具有繼承關係,子類要重寫父類的方法,父類引用子類的物件 例如乙個父類animal 子類 cat 通過輸出結果可以很充分的體現了多型的三個前提 1.必須有繼承關係 cat繼承animal 2.必須重寫父類方法 子類cat重寫了父類的eat,rn,...