2020-01-13python抽象类、接口

2020-01-14  本文已影响0人  小米稀饭a

抽象类

什么是抽象类

抽象类是一种特殊的类,抽象类中只有抽象方法(没有实现功能),所以只能被继承,不能被实例化,其子类必须实现抽象方法。python也有抽象类的概念,只是需要借助模块实现。

import abc


class Animal(metaclass=abc.ABCMeta):
    # name = 'abstractclass'

    @abc.abstractmethod
    def active(self):
        pass

    @abc.abstractmethod
    def sleep(self):
        pass


class Icatchmouse():
    def catchmouse(self):
        pass


class Cat(Animal,Icatchmouse):
    def __init__(self, name):
        self.name = name

    def active(self):
        print('喵~')

    def sleep(self):
        print('咪咪睡觉了')

    def catchmouse(self):
        print(self.name+'捕到老鼠了')

class BSCat(Cat,Icatchmouse):
    def __init__(self, name):
        self.name = name+'bs'

    def active(self):
        print('bs喵~')

    def sleep(self):
        print('bs咪咪睡觉了')

    def catchmouse(self):
        print(self.name+'bs捕到老鼠了')


class Dog(Animal,Icatchmouse):
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def active(self):
        print('汪汪')

    def sleep(self):
        print('狗狗睡觉')


if __name__ == '__main__':
    cat = BSCat('咪咪')
    cat.active()
    cat.sleep()
    cat.catchmouse()

    dog = Dog('旺财', 6)
    dog.active()
    dog.sleep()
    dog.catchmouse()
上一篇下一篇

猜你喜欢

热点阅读