一阶段day17-01抽象类和抽象方法

2018-10-22  本文已影响0人  ATM_shark

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()
上一篇 下一篇

猜你喜欢

热点阅读