理解多态性:区分 Java 中的动态绑定和静态绑定
在 Java 中,多态性是指变量引用不同对象的能力类有两种形式:动态和静态。
静态绑定(编译时绑定)
在静态绑定中,方法调用绑定到特定对象编译时间。当在同一个类中定义具有不同签名的方法时,就会发生这种情况,称为方法重载。例如:
<code class="java">class Calculation { void sum(int a, int b) { System.out.println(a + b); } void sum(int a, int b, int c) { System.out.println(a + b + c); } public static void main(String[] args) { Calculation obj = new Calculation(); obj.sum(10, 10); // 20 obj.sum(10, 10, 10); // 30 } }</code>
动态绑定(运行时绑定)
在动态绑定中,方法调用在运行时绑定到特定对象。当子类重写其超类中定义的方法时,就会发生这种情况。例如:
<code class="java">class Animal { public void move() { System.out.println("Animals can move"); } } class Dog extends Animal { public void move() { System.out.println("Dogs can walk and run"); } } public class TestDog { public static void main(String[] args) { Animal a = new Animal(); // Animal reference and object Animal b = new Dog(); // Animal reference but Dog object a.move(); // output: Animals can move b.move(); // output: Dogs can walk and run } }</code>
以上是动态与静态绑定:Java 如何在运行时解析方法调用?的详细内容。更多信息请关注PHP中文网其他相关文章!