美文网首页
编译时多态 与 运行时多态

编译时多态 与 运行时多态

作者: 偷吃虾的猫 | 来源:发表于2020-07-26 22:04 被阅读0次

    在了解什么是编译时多态 与 运行时多态前,我们先了解下什么是多态


    多态

     多态指同一个实体同时具有多种形式。它是面向对象程序设计(OOP)的一个重要特征。如果一个语言只支持类而不支持多态,只能说明它是基于对象的,而不面向对象的。
     多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果。在运行时,可以通过指向基类的指针,来调用实现派生类中的方法。

    多态的作用:
      把不同的子类对象都当做父类来看,可以屏蔽不同子类对象之间的差异,抽象出一个通用的逻辑关系,以此来适应不同的业务需求。


    编译时多态 与 运行时多态

      多态分为两种情况:编译时多态与运行时多态。编译时多态:即在编译时就能够确定调用哪个方法。而运行时多态则相反,只有在运行时才能确定调用哪个方法。
      下面我们来介绍下,编译时多态 和 运行时多态在重载 和 重写上的区别。

    • 在方法重载时,都是编译时多态。在编译期可根据参数的数据类型、个数以及次序来确定调用方法
    • 在方法重写中,当子类对象引用自身类实例方法时,为编译时多态。但是当父类对象引用子类实例方法时(也就是上转型对象时,父类声明,子类实例化),为运行时多态,因为此时只有在运行时才可以去匹配到对应方法进行调用。

    参考链接:

    相关文章

      网友评论

          本文标题:编译时多态 与 运行时多态

          本文链接:https://www.haomeiwen.com/subject/rndglktx.html