详细讲讲什么叫抽象类,以及怎么用
时间: 2023-08-18 13:09:14 浏览: 32
抽象类是一种特殊的类,它不能被实例化,只能被继承。抽象类中可以包含抽象方法和非抽象方法。抽象方法是指只有方法签名而没有方法体的方法,它没有具体的实现,必须由子类去实现。
抽象类通常用于定义一些基础的、抽象的概念或模板,让子类去实现具体的逻辑。比如,我们可以定义一个抽象类 `Animal`,它有一个抽象方法 `makeSound()`,表示动物发出声音的行为。然后,我们可以再定义一些具体的子类,比如 `Dog` 和 `Cat`,它们都继承自 `Animal`,并且必须实现 `makeSound()` 方法,才能被实例化。
以下是一个使用抽象类的示例代码:
```python
from abc import ABC, abstractmethod
# 定义抽象类 Animal
class Animal(ABC):
@abstractmethod
def makeSound(self):
pass
# 定义具体的子类 Dog
class Dog(Animal):
def makeSound(self):
print("汪汪汪")
# 定义具体的子类 Cat
class Cat(Animal):
def makeSound(self):
print("喵喵喵")
# 创建 Dog 和 Cat 的实例
dog = Dog()
cat = Cat()
# 分别调用它们的 makeSound 方法
dog.makeSound() # 输出:汪汪汪
cat.makeSound() # 输出:喵喵喵
```
在上面的代码中,我们使用了 Python 内置的 `abc` 模块来定义抽象类。具体来说,我们定义了一个名为 `Animal` 的抽象类,并且在其中定义了一个抽象方法 `makeSound()`。然后,我们又定义了两个具体的子类 `Dog` 和 `Cat`,它们分别实现了 `makeSound()` 方法。最后,我们创建了这两个子类的实例,并且分别调用了它们的 `makeSound()` 方法,输出了不同的结果。
需要注意的是,如果一个类继承了抽象类,但没有实现其中的抽象方法,那么这个类也会成为抽象类,不能被实例化。因此,使用抽象类时,需要确保所有的抽象方法都被实现。