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


多态是其中之一,也是最重要的 面向对象(OOP)概念。这是一个概念,我们可以通过多种方式执行单个任务。有两种多态,一种是编译时多态,另一种是运行时多态。

方法重载是编译时多态的一个例子,方法重写是运行时多态的一个例子。

序号编译时多态运行时多态
1基础编译时多态表示绑定发生在编译时在运行时我们才知道将调用哪个方法
2静态/动态绑定可以通过静态绑定实现可以通过动态绑定实现
4.继承不涉及继承涉及继承
5示例方法重载是编译时多态的示例方法重写是运行时多态的示例

编译时多态的示例

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");
   }
}

更新于:2023 年 9 月 12 日

33K+ 浏览

开启你的 职业

完成课程后获得认证

开始
广告