抽象鸡类 abstract(抽象) base(基础) class(类型)

# -->
'''

class interface

接口:
    建立关联的桥梁,
    方便管理代码
    (python中没有接口语法)

接口类:
    用来定义功能的类
    为继承它的子类提供功能
    该类的功能法方法一般不需要有实现体
    实现体有继承它的子类实现


print(len('123'))
# 面向过程
# 知道操作的功能,但不明确操作的具体对象

print('123'.__len__())
# 面向对象
# 清晰知道操作对象,但不明确具体的操作方法

'''
# -- ( 抽象接口 ) -------------------------------------------------------------------------------------------
# -- ( 案例说明 )

# class 宠物接口:
#     def 关怀主人(self):pass

# class 看门接口:
#     def 看门(self): pass


# class 狗(宠物接口,看门接口):
# 类狗拥有(宠物,看门)的父类,也就可以拥有(关怀主人,看门)的方法

#     def 叫(self):pass 叫的功能
#     def 吃(self):pass 吃的功能
#     def 睡(self):pass 睡的功能

# class 猫(宠物接口,看门接口):猫同上
#     def 叫(self):pass
#     def 吃(self):pass
#     def 睡(self):pass


# -- ( 抽象 ) -------------------------------------------------------------------------------------------

# -- ( 抽象父类:拥有抽象方法 ( 子类共有的方法,但是父类不能有具体的实现体 ) 的父类 )
# -- ( 抽象方法:方法名是具体的,但是实现体是抽象的,在子类中重新具象化 )
# -- ( python 中借助abc来实现抽象父类 import abc )

# -- ( 实现抽象语法  ) -------------------------------------------------------------------------------------------
# -- ( 抽象基类 模块:abstract(抽象) base(基础) class(类型)  ) -------------------------------------------------------------------------------------------

    # import abc
    # class ClsName(metaclass=abc.ABCMeta):
    # @abc.abstractmethod

# -- ( 案例  ) -------------------------------------------------------------------------------------------
# -- ( 元类:meta class ) -------------------------------------------------------------------------------------------

import abc
class Canine(metaclass=abc.ABCMeta): # 犬科

    # 抽取 狗和狼 的共性到父类 犬科
    def __init__(self, name):
        self.name = name

    def run(self):
        print(self.name + 'running')
    def eat(self):
        print(self.name + 'eating')
    def sleep(self):
        print(self.name + 'sleeping')

    # 抽象父类中的抽象方法,继承它的子类中 必须 有自己的实现体
    @abc.abstractmethod # 子类必须重写此方法
    def howl(self):
        # print(self.name)
        pass

class Dog(Canine):

    def watchdoor(self):
        print('wtachdoor')
    def howl(self):
        print('Howwwwwwwwwwwww')


class Wolf(Canine):

    def hunter(self):
        print('wtachdoor')
    def howl(self):
        print('oooooooooooooo')
原文地址:https://www.cnblogs.com/max404/p/10753621.html