专注Java教育14年 全国咨询/投诉热线:400-8080-105
动力节点LOGO图
始于2009,口口相传的Java黄埔军校
首页 学习攻略 携程java笔试题,据说这道题没几个人做对

携程java笔试题,据说这道题没几个人做对

更新时间:2020-07-30 15:57:46 来源:动力节点 浏览1787次

携程java笔试题,据说这道题没几个人做对

大家猜猜这个会输出什么呢?静态内部类继承Base类,属性和父类的一样,重写了父类的一个方法,然后在main函数里面调子类的构造函数,其实仔细思考一下大概就知道输出的是什么了~

输出的答案是null

这题的流程是在初始化Sub对象前,首先JAVA虚拟机就在堆区开辟内存并将子类Sub中的baseName和父类Base中的baseName均赋为null。Base b=new Sub()的时候,会先调用父类的无参构造函数,因为子类和父类属性名一样的话,会将父类的属性隐藏。调用了父类的构造函数,父类的构造函数中调用了callName方法,此时父类中的baseName的值为base,可是子类重写了callName方法,且调用父类Base中的callName是在子类Sub中调用的,因此当前的this指向的是子类,也就是说是实现子类的callName方法。可见,在baseName=“sub”执行前(子类赋值语句),子类的callName()已经执行,所以子类的baseName为默认值状态null。

以上就是动力节点java培训机构的小编针对“携程java笔试题,据说这道题没几个人做对”的内容进行的回答,希望对大家有所帮助,如有疑问,请在线咨询,有专业老师随时为你服务。

提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>