Python笔记(三)继承和多态、动态语言

一、继承

      先定义一个A类

class A(object):
    def fun(self):
         print "Run A fun()"

      在定义一个B类

class B(A):
    pass

     此时,B也有A类的函数"fun()", 这个定义B类方式称为继承

class B(A):
    fun(self):
         print "Run B fun()"

      通过重新定义"fun()", B覆盖了从A类中继承的函数fun()

二、多态

      当一个方法的传入参数是个一个类,且方法的执行调用了该传入参数类的方法时,传入参数是该类的子类并不会影响方法的正常执行;

def test(A):
    A.fun()

       调用test方法,传入参数为A类

>>>test(A())
Run A fun()

       再次调用test方法,传入参数为A的子类B

>>>test(B())
Run B fun()

三、注 :动态语言

      若方法的传入参数是object,那么传入的这个参数类有“fun()”这个函数,都可以被正常运行。由于python是动态语言,只要传参数的类有该方法就可以运行。动态运用调用实例方法,不检查类型,只要方法存在,参数正确,就可以调用。

def test(object):
    object.fun()

      

原文地址:https://www.cnblogs.com/Jomini/p/8778573.html