抽象类
什么是抽象类
与java一样,python也有抽象类的概念。抽象类是一种特殊的类,它只能有抽象方法,不能被实例化,在子类继承抽象类时,不能通过实例化使用其抽象方法,必须实现该方法。
抽象类的作用
抽象类可以实现多个子类中共用的部分,而不需要重复写到实现类中。
从设计角度去看,抽象类是基于类抽象而来的,是实现类的基类。
从实现角度来看,抽象类与普通类的不同之处在于:抽象类中有抽象方法,该类不能被实例化,只能被继承,且实现子类必须继承并实现抽象类的方法。
python 3可以利用abc抽象基类实现,python文档说明:abc — 抽象基类
代码语言:javascript复制# 利用abc模块实现抽象类
from abc import ABCMeta
from abc import abstractmethod
class AllFile(metaclass=ABCMeta):
"""
抽象类
"""
type = 'file'
@abstractmethod
def read(self):
"""
子类必须定义读功能
:return:
"""
pass
@abstractmethod
def write(self):
"""
子类必须定义写功能
:return:
"""
pass
class File(AllFile):
"""
子类继承抽象类,但是必须定义read和write方法
"""
def read(self):
print('文本数据的读取方法')
def write(self):
print('文本数据的读取方法')
txt = File()
txt.read()
print(txt.type)
上述程序运行输出
代码语言:javascript复制文本数据的读取方法
file
如果子类继承抽象类时,没有实现抽象方法,在调用子类时会报错
代码语言:javascript复制class Txt(All_file):
pass
# 报错,子类没有定义抽象方法
txt1=Txt()