Python 接口_实现类_继承_多态 小例子
# 定义接口类 from abc import ABC, abstractmethod class Animal(ABC): @abstractmethod def speak(self): pass # 定义实现类 class Dog(Animal): def speak(self): return "Woof!" class Cat(Animal): def speak(self): return "Meow!" class Cow(Animal): def speak(self): return "Moo!" # 创建对象 dog = Dog() cat = Cat() cow = Cow() # 调用不同对象的speak方法,实现多态 print(dog.speak()) # 输出: Woof! print(cat.speak()) # 输出: Meow! print(cow.speak()) # 输出: Moo! # 通用处理类来实现多态 class AnimalOperator: def __init__(self, operand): self.operand = operand def perform_operation(self): if isinstance(self.operand, Animal): # 判断变量operand是否是Animal类的实例对象。 self.operand.speak() # 调用operand对象的speak方法。 dog_operator = AnimalOperator(dog) # 创建一个狗的操作器对象,传入狗实例作为参数 cat_operator = AnimalOperator(cat) # 创建一个猫的操作器对象,传入猫实例作为参数 cow_operator = AnimalOperator(cow) # 创建一个牛的操作器对象,传入牛实例作为参数 dog_operator.perform_operation() # 输出: Woof! cat_operator.perform_operation() # 输出: Meow! cow_operator.perform_operation() # 输出: Moo! """ 当我们定义了一个抽象类Animal,它有一个抽象方法speak()。抽象类不能被实例化,只能被继承。因此,我们定义了三个具体的实现类Dog、Cat和Cow,它们都继承自Animal类,并且都实现了speak()方法。 接下来,我们创建了Dog、Cat和Cow的实例对象dog、cat和cow。然后,我们通过调用不同对象的speak()方法,实现了多态性,即不同对象对同一个方法speak()有不同的实现。 最后,我们使用print()函数打印不同对象的speak()方法的返回值,即dog.speak()返回"Woof!",cat.speak()返回"Meow!",cow.speak()返回"Moo!"。 """
人生苦短,慢慢潇洒。
nsyw.run