编译时多态性和运行时多态性之间的区别
javaserver side programmingprogramming
多态性是最重要的 OOPs 概念 之一。这是一个我们可以用多种方式执行单个任务的概念。多态性有两种类型,一种是编译时多态性,另一种是运行时多态性。
方法重载是编译时多态性的例子,而方法覆盖是运行时多态性的例子。
Sr.不。 | 关键 | 编译时多态性 | 运行时多态性 |
---|---|---|---|
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"); } }