python 面向对象 多态

  1. 什么是多态
    在不考虑实例类型的情况下使用实例
  2. 例子
    peo=People()
    dog=Dog()
    pig=Pig()
    
    def func(obj):
        obj.talk()
    
    func(pig)
  3. 鸭子类型
    #如果看起来像、叫声像而且走起路来像鸭子,那么它就是鸭子,嘿嘿
    在鸭子类型中,关注的不是对象的类型本身,而是它是如何使用的。例如,在不使用鸭子类型的语言中,我们可以编写一个函数,它接受一个类型为鸭的对象,并调用它的走和叫方法。
    优点:松耦合,每个相似类之间没有影响
    缺点:太随意,没有规范
  4. 鸭子类型例子
    #二者看起来都像文件,因而就可以当文件一样去用
    class TxtFile:
        def read(self):
            pass
    
        def write(self):
            pass
    
    class DiskFile:
        def read(self):
            pass
        def write(self):
            pass

猜你喜欢

转载自www.cnblogs.com/walthwang/p/10402814.html