zoukankan      html  css  js  c++  java
  • 面向对象-抽象类

    抽象类只能被继承,不能实例化。统一标准,规范子类方法。

    定义三个动物类,并创建“走”方法

    class People:
        def walk(self):
            print('is walking')
    class Pig:
        def run(self):
            print('is runing')
    class Dog:
        def zou(self):
            print('is zouing')
    peo1=People()
    pig1=Pig()
    dog1=Dog()

    使用者访问对象“走”的属性,不同对象的方法不一样,这就导致困惑

    peo1.walk()
    pig1.run()
    dog1.zou()

    通过抽象类实现,父类定义方法,不写实现代码,具体实现在子类中实现

    #给以下动物创建父类,只定义方法名,不写功能
    class Animal(metaclass=abc.ABCMeta):
        #装饰器规定子类必须有该属性
        @abc.abstractmethod
        def run(self):
            pass
        @abc.abstractmethod
        def eat(self):
            pass
    class People(Animal):
        #重写父类方法
        def run(self):
            print('pople is walking')
        def eat(self):
            print('pople is eating')
    class Pig(Animal):
        def run(self):
            print('pig is walking')
        #无eat方法直接pass即可
        def eat(self):
            pass
    class Dog:
        def run(self):
            print('dog is walking')
        def eat(self):
            print('dog is eating')
    peo1=People()
    pig1=Pig()
    dog1=Dog()

    再访问对应“走”即可run

    #访问对象“走”的属性通过run方法即可,吃的属性eat即可
    peo1.run()
    pig1.run()
    dog1.run()
  • 相关阅读:
    后CIO人如何规划职业生涯
    数据库设计三大范式应用实例剖析
    一个女孩从软件测试工程师到主管的成长
    一本适合测试初学者阅读的中文译著
    再看微软团队文化
    阳光的测试工作历程(转载)
    hdu 2795
    hdu 2426
    hdu 2255+hdu 3395
    hdu 3729
  • 原文地址:https://www.cnblogs.com/yaya625202/p/8871701.html
Copyright © 2011-2022 走看看