class Animal: def init(self, name, age, gender): self.name = name self.age = age self.gender = gender

def eat(self):
    print(f'{self.name}正在吃东西')

class Cat(Animal): def eat(self): print(f'{self.name}正在吃鱼')

def catch_mouse(self):
    print(f'{self.name}正在捉老鼠')

class Dog(Animal): def eat(self): print(f'{self.name}正在吃骨头')

def watch_house(self):
    print(f'{self.name}正在看家')

if name == 'main': cat = Cat('Tom', 2, 'male') dog = Dog('Jack', 3, 'female')

cat.eat()
cat.catch_mouse()

dog.eat()
dog.watch_house()

输出结果:

Tom正在吃鱼

Tom正在捉老鼠

Jack正在吃骨头

Jack正在看家

特点:在多态的情况下,调用的方法是根据实际对象的类型而不是变量的类型来确定的。即便是变量类型相同,只要实际对象的类型不同,调用的方法也可能不同。在上述示例中,cat和dog虽然都是Animal类的实例,但由于它们分别属于Cat和Dog类,因此调用的吃饭方法是不同的。而调用捉老鼠和看家方法则是分别由Cat和Dog类独有的。

Python 面向对象编程:多态性实例解析 - 动物、猫、狗

原文地址: https://www.cveoy.top/t/topic/okwS 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录