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()
  • 相关阅读:
    8.2.8 A Simple Game
    8.2.7 Be the Winner
    8.2.6 John
    8.2.5 kiki's game
    8.2.2 Good Luck in CET-4 Everybody!
    8.2.4 悼念512汶川大地震遇难同胞——选拔志愿者
    8.1.8 Team Queue
    8.2.1 Brave Game
    8.1.7 愚人节的礼物
    8.1.6 Windows Message Queue
  • 原文地址:https://www.cnblogs.com/yaya625202/p/8871701.html
Copyright © 2011-2022 走看看