抽象类中的非抽象方法
时间: 2024-02-15 18:59:59 浏览: 82
C#中实现抽象类里建立静态方法
抽象类中的非抽象方法是指在抽象类中定义的具体实现的方法,这些方法可以直接被子类继承和使用。与抽象方法不同,非抽象方法在抽象类中已经有了默认的实现,子类可以选择性地对其进行重写或者直接使用。
下面是一个示例,展示了抽象类中的非抽象方法的使用:
```python
from abc import ABC, abstractmethod
class Animal(ABC):
@abstractmethod
def sound(self):
pass
def eat(self):
print("Animal is eating.")
class Dog(Animal):
def sound(self):
print("Dog is barking.")
dog = Dog()
dog.sound() # 输出:Dog is barking.
dog.eat() # 输出:Animal is eating.
```
在上面的示例中,`Animal`是一个抽象类,其中定义了一个抽象方法`sound`和一个非抽象方法`eat`。`Dog`是`Animal`的子类,必须实现抽象方法`sound`,但可以选择性地重写非抽象方法`eat`。在创建`Dog`对象后,我们可以调用`sound`方法和`eat`方法,分别输出"Dog is barking."和"Animal is eating."。
阅读全文