Java基础之虚拟方法调用

何为虚拟方法?何为虚拟方法调用呢?
	   子类中定义了与父类同名同参数的方法,在多态的情况下,此时父类
	中得方法被称为虚拟方法。父类根据赋给的不同子类对象,动态的调
	用属于子类的该方法即为虚拟方法调用。这种方法调用在编译期是无法确定的。

以下是正常方法调用与虚拟方法调用的区别:

正常方法调用:

//这里的Student类是Person类的子类

> Person p = new Person();
> p.study();  //Person类中得study()方法
> Student s = new Student();
> s.study();  //Student类中得study()方法

虚拟方法调用(在多态情况下):

> Person ps = new Student();
> ps.study();  //调用的是Student类中得study()方法

编译时类型和运行时类型:
编译时 ps 的类型为 Person 类型,而方法的调用是运行时决定的,所以在运行时调用的
是 Student 类中得 study() 方法。这种过程叫做动态绑定。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值