练习题

题库里遇到的一道题:

在这里插入图片描述

分析如下:

new B();创建一个B类的实例

1.此时执行super(5);语句调用父类带参数的构造方法,该构造方法调用了setValue();方法,但是该方法已经被继承A类的b类进行重写,所以这里调用重写后的setValue();方法,此时value的值为2*5=10.

然后继续执行下面代码,调用getValue()方法,此时的value值为10,执行value++之后,值为11,并将11进行返回保存。在执行finally();中的语句,需要注意的是这里是B类调用getValue();方法,所以该this代表B的实例,再执行B类中的setValue();方法输出11*2=22.

2.getValue();中的返回值为11,所以B中构造方法第二句执行setValue(11-3=8);操作,执行重写后的方法setValue();此时value值为16;

new B().getValue();

3.执行new B().getValue();操作,此时的value为16,调用getValue();方法,value++之后值为17,再将value值进行保存。执行finally中的语句,输出结果为17*2=34;

4.此时main方法中要求输出new B().getValue();的值,该值为第二次return的值17.

所以该程序最终的输出结果为:22 34 17;

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值