前段时间朋友去同程旅行面试,被问到了一个看似简单,实则“有点东西”的问题:“了解多态的实现原理吗?”,所以今天我们就来聊一聊这个问题。
和朋友的聊天截图:
为了保护朋友隐私,所以这里只把咱们今天讨论的问题展示给大家,如果有需要整个面试题的,可以单独找我获取:gg_stone【备注:同程】
多态是面向对象编程中的一个重要特性,它主要是通过方法重写和方法重载来实现的。
但如果你面试的时候,给面试官说多态的实现原理是“方法重写和重载”,那你多半就凉凉了。因为“方法重写和方法重载”是多态的实现方式,但并不是它的实现原理。
多态是面向对象编程中的一个重要概念,它允许通过父类类型的引用变量来引用子类对象,并在运行时根据实际对象的类型来确定调用哪个方法。换句话说,一个对象可以根据不同的情况表现出多种形态。
通过多态,我们可以利用父类类型的引用变量来指向子类对象,并根据实际对象的类型调用对应的方法。这样可以在不修改现有代码的情况下,动态地切换和扩展对象的行为。
多态有以下几个特点和优势:
以上就是多态的实现原理。
面向对象的特征:封装、继承和多态,其中多态的面试问题最多,而多态的实现原理看似简单,实在需要了解 JVM 层面的一些知识(动态绑定和虚拟方法调用)才能回答好,所以这也侧面说明了一个问题,想要拿到好的 Offer 和薪资,一定要提前准备才行。
本文已收录到我的面试小站 www.javacn.site,其中包含的内容有:Redis、JVM、并发、并发、MySQL、Spring、Spring MVC、Spring Boot、Spring Cloud、MyBatis、设计模式、消息队列等模块。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。