zoukankan      html  css  js  c++  java
  • 抽象鸡类 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')
  • 相关阅读:
    PerfDog
    adb 常用操作
    netstat命令(net-tools)
    资源路径总结:
    四个作用域对象:
    jsp的 九大内置对象
    Jsp 的语法和指令
    JSP 学习
    server.xml 文件:
    Web.xml 文件使用总结:
  • 原文地址:https://www.cnblogs.com/max404/p/10753621.html
Copyright © 2011-2022 走看看