,可以通过以下步骤实现:
下面是一个示例:
假设我们有一个抽象基类Animal,它有一个抽象方法speak()用于发出声音。现在我们想向Animal类添加一个新方法eat(),用于表示动物进食的行为。
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def speak(self):
pass
def eat(self):
print("Animal is eating.")
class Dog(Animal):
def speak(self):
print("Dog is barking.")
def eat(self):
print("Dog is eating.")
class Cat(Animal):
def speak(self):
print("Cat is meowing.")
dog = Dog()
dog.speak() # Output: Dog is barking.
dog.eat() # Output: Dog is eating.
cat = Cat()
cat.speak() # Output: Cat is meowing.
cat.eat() # Output: Animal is eating.
在上面的示例中,我们向Animal类添加了一个新方法eat(),并在其中提供了一个默认实现。派生类Dog和Cat可以选择性地覆盖eat()方法,以提供特定的实现逻辑。在示例中,Dog类覆盖了eat()方法,而Cat类没有覆盖,因此调用cat.eat()时会执行抽象基类Animal中的默认实现。
腾讯云相关产品和产品介绍链接地址:
领取专属 10元无门槛券
手把手带您无忧上云