多型
不同的資料型別,執行相同的方法,產生的狀態不同
#!/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,...