当前位置: 首页 > 编程笔记 >

编译时多态和运行时多态之间的区别

井旺
2023-03-14
本文向大家介绍编译时多态和运行时多态之间的区别,包括了编译时多态和运行时多态之间的区别的使用技巧和注意事项,需要的朋友参考一下

多态性是最重要的OOP概念之一。它是一个概念,通过它我们可以以多种方式执行单个任务。多态有两种类型,一种是编译时多态,另一种是运行时多态。

方法重载是编译时多态的示例,方法重载是运行时多态的示例。

序号 编译时多态 运行时多态
1个
基本的
Compile time polymorphism means binding is occuring at compile time
R un time多态性,在运行时我们知道要调用哪种方法
2
静态/动态
绑定


It can be achieved through static binding
可以通过动态绑定来实现
4。
继承
Inheritance is not involved
涉及继承
5

Method overloading is  an example of compile time polymorphism
方法覆盖是运行时多态性的一个示例

编译时多态性的示例

public class Main {
   public static void main(String args[]) {
      CompileTimePloymorphismExample obj = new CompileTimePloymorphismExample();
      obj.display();
      obj.display("Polymorphism");
   }
}
class CompileTimePloymorphismExample {
   void display() {
      System.out.println("In Display without parameter");
   }
   void display(String value) {
      System.out.println("In Display with parameter" + value);
   }
}

运行时多态的示例

public class Main {
   public static void main(String args[]) {
      RunTimePolymorphismParentClassExample obj = new RunTimePolymorphismSubClassExample();
      obj.display();
   }
}

class RunTimePolymorphismParentClassExample {
   public void display() {
      System.out.println("Overridden Method");
   }
}

public class RunTimePolymorphismSubClassExample extends RunTimePolymorphismParentExample {

   public void display() {
      System.out.println("Overriding Method");
   }
}
 类似资料:
  • 问题内容: 我确实知道重载和重载之间的语法差异。而且我也知道,重载是运行时多态,重载是编译时多态。但是我的问题是:“重载真的是编译时的多态性吗?方法调用真的在编译时解决了吗?”。为了阐明我的观点,让我们考虑一个示例类。 由于所有方法都是公开的,因此可以全部重写(包括重载的方法),对吗?例如, 现在,考虑以下代码片段: 该方法返回一个随机对象。它可以返回的对象,或者它的任何子类,例如或或任何其他一个

  • 问题内容: 用Go编写了一些脚本后,我问自己--file 的编译与以后的执行以及命令在性能等方面是否有区别。 如果使用以下方法之一启动Web服务,会有什么好处? 问题答案: 只是编译然后在单个步骤中运行的快捷方式。尽管它对开发很有用,但通常应将其构建并在生产中使用它时直接运行二进制文件。

  • 本文向大家介绍C#中的编译时多态是什么?,包括了C#中的编译时多态是什么?的使用技巧和注意事项,需要的朋友参考一下 多态可以是静态的也可以是动态的。在静态多态性中,对函数的响应是在编译时确定的。在动态多态中,它是在运行时决定的。 在编译期间将函数与对象的链接称为早期绑定。也称为静态绑定。C#提供了两种技术来实现静态多态性。它们是函数重载和运算符重载。 在函数重载中,可以在同一作用域中为相同的函数名

  • 本文向大家介绍C ++中的虚函数和运行时多态,包括了C ++中的虚函数和运行时多态的使用技巧和注意事项,需要的朋友参考一下 C ++中的虚函数用于创建基类指针和任何派生类的调用方法的列表,甚至不知道派生类对象的种类。虚函数在运行时解析得较晚。 虚函数的主要用途是实现运行时多态。运行时多态只能通过基类类型的指针(或引用)来实现。同样,基类指针可以指向基类的对象以及派生类的对象。在上面的代码中,基类指

  • 问题内容: 运行时多态与静态多态有何不同? 这可以作为运行时多态的示例吗? 代码是从这里挑选的 问题答案: 是的,这是在Java中 在中,编译器本身确定应调用的方法。是静态多态性的一个例子。 在中,编译器无法在编译时确定方法。(如您的示例)是的示例。因为在(如您的示例中),类和中的签名相似。因此,编译器无法在编译时确定应执行的方法。仅在对象创建(这是一个运行时过程)之后,运行时环境才能了解要调用的