java动态方法_Java 动态方法调用

Java 动态方法调用

在Java中,如果方法重写只是一种名字空间的编写,那么它最多是让人感到有趣,但没有实际价值,但情况并非如此。方法重写构造成了Java最大的一个概念基础:动态方法调度(dynamic method dispatch)。动态方法调度是一种机制,借助于这种机制,对一个已经重写的方法的调用将在运行时,而不是在编译时解析。动态方法调度非常重要,因为这关系到Java如何实现运行多态性的问题。我们知道,超类引用变量可以引用子类对象,Java使用这个事实来解决在运行时对重写方法的调用。下面是运行原理:当一个超类引用调用一个重写方法时,Java根据在调用时被引用对象的类型执行哪个版本的方法。换句话说,是被引用对象的类型(不是引用变量的类型)决定将执行哪个版本的重写方法。因此,如果说超类包含一个被子类重写的方法,那么当通过超类引用变量来引用不同类型的对象时,就会执行那个方法的不同版本。演示如下:

public class ClassA {

void callme(){

System.out.println("Inside A's callme method");

}

}

public class ClassB extends ClassA{

void callme(){

System.out.println("Inside B's callme method");

}

}

public class ClassC extends ClassA{

void callme(){ </

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值