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

编译时多态 与 运行时多态

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

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


多态

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

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


编译时多态 与 运行时多态

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

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

参考链接:

相关文章

  • C++ 的多态(Polymorphism), virtual f

    多态 c++支持两种多态,编译时多态和运行时多态但其实编译时多态根本不是真正的多态,编译时多态就是函数的重载,ov...

  • java多态面试题

    java多态性 多态分两种: (1) 编译时多态(设计时多态):方法重载。 (2) 运行时多态:JAVA运行时...

  • 六、多态与虚函数

    多态的基本概念 多态 多态分为编译时多态和运行时多态。 编译时多态主要是指函数的重载(包括运算符的重载)。对重载函...

  • C++第六篇多态

    C++中的多态性分为编译时多态性和运行时多态性,编译时多态通过函数重载和模板体现,运行多态通过虚函数体现编译、连接...

  • jvm结构&运行机制&多态实现

    浅析Java虚拟机结构与机制 浅谈多态机制的意义及实现 多态:编译时多态(重载)、运行时多态(继承父类、实现接口)...

  • java多态面试题

    java多态性 多态分两种: (1) 编译时多态(设计时多态):方法重载。 (2) 运行时多态:JAVA运...

  • 编译时多态 与 运行时多态

    在了解什么是编译时多态 与 运行时多态前,我们先了解下什么是多态 多态  多态指同一个实体同时具有多种形式。它是面...

  • 浅谈多态

    一种事物有多种状态称为多态多态分为运行时多态和编译时多态下面来介绍几种体现多态的例子1.向上转型和重载体现了编译时...

  • 对Java中多态的理解

    首先给多态下个定义: 对于面向对象而已,多态分为编译时多态和运行时多态。其中编辑时多态是静态的,主要是指方法的重载...

  • c++虚函数

    说到虚函数,首先要讲一下OOP中的多态,多态简单的说就是一个接口,多种实现. 多态分为编译时多态和运行时多态。编译...

网友评论

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

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