抽象方法是父类的一个方法, 父类没有实现这个方法, 父类是不可以实例化的. 子类继承父类, 子类必须实现父类定义的抽象方法, 子类才可以被实例化. Python中的abc提供了@abstractmethod装饰器实现抽象方法的定义
抽象类的实现
Python 3.4+
1 | from abc import ABC, abstractmethod |
Python 3.0 - 3.3 版本
1 | from abc import abstractmethod, ABCMeta |
Python 2 版本
1 | from abc import ABCMeta, abstractmethod |
浅谈抽象类
类, 是从一堆对象中抽象出来的, 比如猫类
,狗类
,人类
抽象类, 是从一堆类中抽象出来的, 比如上面的三个类可以抽取出动物类
抽象类的特点是不能给实例化, 只能被子类继承, 由子类实现了父类的抽象方法后, 子类才能被实例化
Python中的接口, 抽象类, 抽象函数
Python中的接口是个弱概念, 从Java中的概念延伸而来, Python中通过抽象类和抽象方法来实现一个接口, 例如Python3中, class 类继承的 abc.ABC
即为抽象类, @abstractmethod
装饰器使其装饰的函数成为抽象函数
一般情况下, Python多在单继承的情况下使用抽象类