摘要:至此,类实例化完成。块中会先行发生这一点有点迷,明明调试的顺序是先执行里的语句导致然后才跳到,然后执行该方法返回的值还是原先的,感觉能从函数调用栈帧角度说得通,但这里不熟,未来再回来解疑。
先上题目:
函数ExtendsTest.main()执行后的输出:
public class ExtendsTest { public static void main(String[] args) { System.out.println(new B().getValue()); } static class A { protected int value; public A(int value) { this.value = value; } public int getValue() { try { value++; return value; } finally { this.setValue(value); System.out.println(value); } } public void setValue(int value) { this.value = value; } } static class B extends A { public B() { super(5); setValue(getValue() - 3); } @Override public void setValue(int value) { super.setValue(2 * value); } } }
为了方便调试,我们先对B类的构造器做一点改装:
public B() { super(5); int c = getValue(); setValue(c - 3); }
开始调试:
这里开始调用this.setValue(),由于子类B自己覆盖了父类的方法,所以这里调用子类的方法,执行后结果为12
也就是说此时的value为B实例的变量value=12,不过要搞清楚的是调用getValue()方法返回的结果是6,返回结果是:
然后是setValue的计算:(6-3)*2=6,此时类B的实例的value值由原先的12变成6。至此,类B实例化完成。
接下来就是调用getValue()的结果了:
value=6+1=7,return 7,打印 2*7=14。最终打印7
所以最终打印结果为: 12 14 7
总结:
当子类覆盖父类的方法后,父类里调用同名方法将调用子类的方法,这是继承的特性。
try...finally块中return 会先行发生(这一点有点迷,明明idea调试的顺序是先执行finally里的语句导致value=12,然后才跳到return,然后执行该方法返回的值还是原先的6,感觉能从函数调用栈帧角度说得通,但这里不熟,未来再回来解疑。)
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/67742.html
摘要:具体的时间线从月中旬,我开始关注牛客网的秋招内推信息。直至十月中下旬结束秋招。之前也写过自己在广州找实习的经历,那次把面试的过程都具体贴出来了。我今年就完美错过了春招实习经历。 前言 只有光头才能变强 离上次发文章已经快两个月时间了,最近一直忙着秋招的事。今天是2018年10月22日,对于互联网行业来说,秋招就基本结束了。我这边的流程也走完了(不再笔试/面试了),所以来写写我的秋招经历...
摘要:最近面试一家有直播业务的公司,明显感觉到对多线程的理解有一些要求。第一轮面试大概就面了分钟左右,一轮下来口干舌燥。下面对面试题做了下简单分类,分享给大家。 最近面试一家有直播业务的公司,明显感觉到对多线程的理解有一些要求。第一轮面试大概就面了 70 分钟左右,一轮下来口干舌燥。 下面对面试题做了下简单分类,分享给大家。 多线程 有什么方法可以监控线程的状态 synchronized ...
摘要:作者今年大三,在春招过程中参加了多家大公司的面试后,拿到了腾讯的前端实习,在这里做一些总结,希望给还未参加过实习面试的同学一些帮助。在之后的面试时就更加从容一些了。 作者今年大三,在春招过程中参加了多家大公司的面试后,拿到了腾讯的前端实习 offer,在这里做一些总结,希望给还未参加过实习面试的同学一些帮助。 一、简历的准备 简历制作是很重要的一个环节,一份好的简历会给面试官留下很不错...
阅读 2601·2021-11-19 09:56
阅读 849·2021-09-24 10:25
阅读 1607·2021-09-09 09:34
阅读 2167·2021-09-09 09:33
阅读 1024·2019-08-30 15:54
阅读 508·2019-08-29 18:33
阅读 1232·2019-08-29 17:19
阅读 487·2019-08-29 14:19