OOP三大特性之多态

官方描述:不同对象可以响应(调用)同一个方法,产生不同的结果
       (对猫,狗,发出吃的命令时,猫去吃鱼,狗去吃骨头)

好处:提高程序的扩展性

具体的:父类建立一套规范,无需实现内部的方法,子类按照这套规范实现各自的功能

import abc
class Animal(metaclass=abc.ABCMeta):
    @abc.abstractmethod
    def talk(self):                  父类定义的规范,子类必须拥有
        pass
    def sleep(self):
        pass                             没有@abc.abstractmethod的可以不遵循,一般需要遵循



class Person(Animal):
    def talk(self):
        print('hello')
class Cat(Animal):
    def talk(self):
        print('miao')
p1 = Person()
p1.talk()
                 

鸭子类型

  python不推荐强制限制语法,推荐鸭子类型,(不使用abc强制要求必须有哪个函数,自己遵循即可)

猜你喜欢

转载自www.cnblogs.com/pdun/p/11252495.html
今日推荐