python抽象类和接口
时间: 2023-09-22 16:08:35 浏览: 99
抽象类和接口都是面向对象编程中的概念,用于描述一种类型或者类的行为。在 Python 中,抽象类和接口的实现方式有所不同。
抽象类是一个包含抽象方法的类,抽象方法是一种没有具体实现的方法,只有方法名和参数列表,没有函数体。抽象类的目的是为了让子类去实现这些抽象方法,并且强制子类必须实现这些方法。在 Python 中,可以通过 abc 模块来实现抽象类。示例代码如下:
```python
from abc import ABC, abstractmethod
class MyAbstractClass(ABC):
@abstractmethod
def my_abstract_method(self):
pass
class MyConcreteClass(MyAbstractClass):
def my_abstract_method(self):
print("MyConcreteClass's implementation of my_abstract_method")
my_object = MyConcreteClass()
my_object.my_abstract_method()
```
接口是一个约定,它描述了一个类应该具有哪些方法,但是并不关心这些方法的实现方式。接口中的方法都是抽象的,没有具体实现。在 Python 中,没有专门的接口语法,但是可以通过多重继承和抽象类来实现接口。示例代码如下:
```python
class MyInterface1(ABC):
@abstractmethod
def my_interface_method1(self):
pass
class MyInterface2(ABC):
@abstractmethod
def my_interface_method2(self):
pass
class MyConcreteClass(MyInterface1, MyInterface2):
def my_interface_method1(self):
print("MyConcreteClass's implementation of my_interface_method1")
def my_interface_method2(self):
print("MyConcreteClass's implementation of my_interface_method2")
my_object = MyConcreteClass()
my_object.my_interface_method1()
my_object.my_interface_method2()
```
阅读全文