多型

多型是物件導向中非常重要的一環,而繼承跟多型又是息息相關的,如果沒有繼承就不會有多型

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 是不同品種

我想以上例子,已經簡單的說明什麼是多型了

petCat的實體 也是 Mix的實體,但pettype不是Cat而是 Mix

animalpet都是Cat的實體但他們屬於不同品種

results matching ""

    No results matching ""