断点调试来分析一道笔试题:
先说输出的结果:
相信小伙伴会有疑惑:为啥有个A?
打上断点,且跟随本憨憨断点调试看看究竟...
第一步:进入DEBUG模式
第二步:下一步竟然进入到了class A 的方法A中(这是关键!!!)
分析:因为B是A的子类,且B没有重写父类(A类)的无参构造方法A,那么意味着B是有一个与父类相同的无参构造A方法的,只是隐含起来了,所以在new B()的时候,会去加载其父类A,同时B被new出来的时候,执行了隐含(未重写)的父类的无参构造方法A,故会打印A
执行后的控制台:
接下来继续看
第三步:执行到B的无参构造
执行后的控制台:
第四步:这一行代码走完了,回到该行
第五步:开始执行下一行,走你:
第六步:直接走A的空参构造
执行后的控制台:
程序结束!
虽然不知道我的理解有没有错,但是先记录下断点保存的思路!
标签:无参,执行,子类,构造,控制台,父类,断点 来源: https://www.cnblogs.com/debuggerhu/p/13397440.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。