java 动态绑定,代码示例

jsonjiaocheng

温馨提示:这篇文章已超过239天没有更新,请注意相关的内容是否还可用!

java 动态绑定,代码示例

动态绑定是指在运行时根据对象的实际类型来确定调用的方法。在Java中,动态绑定是通过多态实现的。多态是指同一个方法在不同的对象上可以有不同的行为。

示例代码如下:

class Animal {

public void sound() {

System.out.println("Animal makes sound");

}

}

class Dog extends Animal {

public void sound() {

System.out.println("Dog barks");

}

}

class Cat extends Animal {

public void sound() {

System.out.println("Cat meows");

}

}

public class Main {

public static void main(String[] args) {

Animal animal1 = new Dog();

Animal animal2 = new Cat();

animal1.sound(); // 输出 "Dog barks"

animal2.sound(); // 输出 "Cat meows"

}

}

在上面的示例中,有一个Animal类和两个子类Dog和Cat。Animal类有一个sound()方法,而子类Dog和Cat分别重写了sound()方法。在main()方法中,我们创建了一个Animal类型的变量animal1,并将其引用指向一个Dog对象。同样,我们创建了另一个Animal类型的变量animal2,并将其引用指向一个Cat对象。

当我们调用animal1.sound()时,由于animal1的实际类型是Dog,因此会调用Dog类中重写的sound()方法,输出"Dog barks"。同样地,当我们调用animal2.sound()时,由于animal2的实际类型是Cat,因此会调用Cat类中重写的sound()方法,输出"Cat meows"。

这就是动态绑定的作用:根据对象的实际类型来确定调用的方法。在编译时,animal1和animal2都被声明为Animal类型,编译器只能确定它们是Animal类型,无法确定具体是哪个子类的实例。但是在运行时,Java会根据对象的实际类型来调用相应的方法,实现了动态绑定。

文章版权声明:除非注明,否则均为莫宇前端原创文章,转载或复制请以超链接形式并注明出处。

取消
微信二维码
微信二维码
支付宝二维码