面试官的加分题:super关键字全解析,轻松应对!

本文涉及的产品
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
云解析 DNS,旗舰版 1个月
简介: 小米,29岁程序员,通过一个关于Animal和Dog类的故事,详细解析了Java中super关键字的多种用法,包括调用父类构造方法、访问父类成员变量及调用父类方法,帮助读者更好地理解和应用super,应对面试挑战。



Hey,大家好呀!我是小米,一个29岁热爱分享技术的大哥哥。今天又是元气满满的一天,我们继续来聊聊那些看似简单却让面试官疯狂加戏的Java面试题。这次的主角是super关键字!

super这个东西啊,初学者用得少,老鸟也未必熟悉,但它的妙用可不少。在社招面试中,要是面试官突然问起它,千万别慌!咱今天就通过一个轻松的故事,带你彻底掌握super关键字的精髓!

故事背景:代码中的家族纷争

有一天,小明被分配到一个项目中。项目里有个Animal类和Dog类,还有一堆代码看着就头大。他翻开代码的第一行:

没过几秒,又找到了继承它的Dog类:

小明轻松地运行代码:

结果果然没问题,输出:

一切看似正常,但小明发现,需求有变!项目经理说:“狗在自我介绍时,得先强调它是一种动物。能不能加个方法,调用父类的name和name对应的speak()方法?”

super登场,解决家族矛盾

小明这时回忆起培训时学的super关键字。于是,他修改了Dog类:

他重新运行代码,输出变成了:

super关键字的妙用全解

到这里,项目经理很满意,但小明觉得不够!作为一个技术Geek,他决定深入探究super关键字的更多用途,准备在面试里炫技。

1. super调用父类的构造方法

运行代码:

输出结果:

小明总结:

super必须是子类构造方法的第一行,用来调用父类的构造器。如果父类没有无参构造器,而子类没有明确调用父类的构造器,编译会报错。

super访问父类的成员变量

小明决定再验证super是否能访问父类的同名成员变量:

运行代码:

输出结果:

小明总结:

super.成员变量可以直接访问父类的成员变量,避免子类变量重名时引发冲突。

super调用父类的普通方法

这点在刚刚的super.speak()已经体现过了,但小明决定深入再测试一下。

运行代码:

输出结果:

小明总结:

子类方法中,super.方法名()可以直接调用父类的方法。

面试官的加戏题

刚好赶上社招面试,面试官拿出了super的经典问题:多层继承下,super调用的是哪一层的方法?

小明又准备了代码:

运行代码:

输出结果:

小明回答面试官:“super总是指向直接的父类,而不是跨越多层去调用更远的祖先类。

总结与收获

在这个小故事里,我们看到super有以下几大核心用法:

  • 调用父类的构造方法:super()必须是子类构造方法的第一行,用来初始化父类的构造器。
  • 访问父类的成员变量:super.变量名用于访问父类的同名变量。
  • 调用父类的方法:super.方法名()可以直接调用父类的普通方法,甚至是在重写时保留父类的逻辑。

最后的小彩蛋!

面试官问完后,小明还主动补充:“在实际项目中,super的使用频率可能不高,但在继承关系复杂的代码里,它能清晰表达对父类成员的操作,帮助我们避免不必要的混淆。”

面试官大赞:“不错,你过了!”

END

希望这篇文章能让大家对super关键字有更深的理解!如果还有其他Java面试题想听小米讲解,欢迎留言~ 咱们下期见啦!

我是小米,一个喜欢分享技术的29岁程序员。如果你喜欢我的文章,欢迎关注我的微信公众号软件求生,获取更多技术干货!

相关文章
|
4月前
|
存储 Java
八股day03_方法
八股day03_方法
|
5月前
|
搜索推荐 算法 网络协议
如何做好IT类的技术面试?
如何做好IT类的技术面试?
54 0
|
7月前
|
机器学习/深度学习 人工智能
技术人的四大「造神」学习法,为啥就没人好好用呢?
技术人的四大「造神」学习法,为啥就没人好好用呢?
58 2
|
7月前
|
前端开发 JavaScript 程序员
如何做好IT类的技术面试
如何做好IT类的技术面试
|
编译器 C++
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(3)
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(3)
83 0
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(3)
|
程序员
5分钟掌握如何做面试官
5分钟掌握如何做面试官
191 0
5分钟掌握如何做面试官
|
编译器 C++
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(1)
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(1)
112 0
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(1)
|
编译器 C++
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(2)
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(2)
96 0
【C++】—— 类和对象(中)一张图带你搞清楚6个默认成员函数+万字总结 复习全靠它(2)
|
JavaScript 前端开发
这样回答继承,面试官可能更满意
9021年底了,突然想在这个最后一个月准备一下,试试机会,能否更进一步。所以开始准备一些基础知识,也随带总结出来给各位想换工作的同学。希望大家能找到自己想要的工作。祝大家好运!
181 0
|
消息中间件 运维 Dubbo
源码阅读的方法、误区以及三种境界
源码阅读的方法、误区以及三种境界

相关实验场景

更多