zoukankan      html  css  js  c++  java
  • 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()

          

  • 相关阅读:
    微软紧急安全公告:当心SQL攻击爆发
    婴儿
    感冒了
    System.IO.FileAttributes
    mssql数据库,无法用语句实现“强制还原”功能
    好大的风
    无聊的游戏
    JZOJ 4276【NOIP2015模拟10.28A组】递推
    JZOJ 4289.Mancity
    单词检索(search)
  • 原文地址:https://www.cnblogs.com/Jomini/p/8778573.html
Copyright © 2011-2022 走看看