多型
多型是物件導向中非常重要的一環,而繼承跟多型又是息息相關的,如果沒有繼承就不會有多型
class Cat:
def __init__(self, name):
self.name = name
def jump(self):
print(self.name+" 跳了一下")
def __hair_less(self):
print(self.name+" 禿頭")
class Mix(Cat):
def __init__(self, name):
super(Mix, self).__init__(name)
def jump(self):
print("[Mix] "+self.name+" 跳了一下")
animal = Cat("某隻野生貓")
pet = Mix("噹噹")
if (isinstance(animal, Cat) and isinstance(pet, Cat)):
animal.jump()
pet.jump()
print("Animal 和 Pet 都是貓")
if (type(animal) == type(pet)):
print("Animal 和 Pet 是同品種")
else:
print("Animal 和 Pet 是不同品種")
#print 某隻野生貓 跳了一下
#print [Mix] 噹噹 跳了一下
#print Animal 和 Pet 都是貓
#print Animal 和 Pet 是不同品種
我想以上例子,已經簡單的說明什麼是多型了
pet
是 Cat
的實體 也是 Mix
的實體,但pet
的type
不是Cat
而是 Mix
而animal
和 pet
都是Cat
的實體但他們屬於不同品種