- 封裝,繼承,多態是面向對象的三大特徵。
- 在Python的面向對象中,如果定義的若干個對象都有同一個方法,(比如下面的say方法),那麼無論他們是否繼承同一個父類,他們都可以統一通過方法的調用(say方法的調用)實現。
"""
定義是的類型和運行時的類型不一樣,就是多態的體現
Python崇尚鴨子類型
"""
class Cat(object):
def say(self):
print("i am Cat")
class Dog(object):
def say(self):
print("i am Dog")
class Duck(object):
def say(self):
print("i am Duck")
# 以上定義了三個類
animal_list = [Cat, Dog, Duck] # 這裏將三個封裝好的類分別作爲animal_list的三個元素
for animal in animal_list: # animal_list是一個列表,是可迭代的對象
animal().say() # animal()是實例化對象的過程,然後分別調用 Cat, Dog, Duck的say方法