1、抽象类
抽象类:只能被继承不能实例化(不能创建对象)。
抽象方法:声明的时候不用实现,在子类中必须去重写的方法。
2、声明抽象类
类继承abc模块中的ABCMeta,继承的时候需要加参数metaclass。并且要通过abc.abstractclassmethod创建抽象方法。
子类继承一个抽象类,必须在子类中实现抽象类中所有的抽象方法,否则抽象方法不可用
import abc
class Shape(metaclass=abc.ABCMeta):
#声明抽象方法(抽象类中没有抽象方法 就没有任何意义)
@abc.abstractclassmethod
def draw(self):
pass
class Circle(Shape):
def draw(self):
print('abc')
s1=Shape() #TypeError: Can't instantiate abstract class Shape with abstract methods draw
c1=Circle()
c1.draw()
网友评论