Python 面向对象编程:多态性实例解析 - 动物、猫、狗
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类独有的。
原文地址: https://www.cveoy.top/t/topic/okwS 著作权归作者所有。请勿转载和采集!