什么是Java的多态特性?

Java的多态指的是父类的引用指向子类的对象,使得在调用同一个方法时,会执行子类自己的实现。

通常来说,多态有3个必要条件。

1.要有继承关系,比如子类继承父类,或者实现关系,比如类实现接口;

2.子类需要重写父类的方法;

3.父类的引用指向子类的对象,换句话说就是把子类类型的对象赋值给父类类型的引用变量,也就是向上转型。

在面试的时候,有些面试官可能会问你多态的作用,多态的作用就两个:

一个是解耦,也就是调用方只依赖父类或者接口,并不会依赖它的具体实现。

另一个是可拓展,就是说可以在完全不修改原有代码的情况下新增一个子类。

多态性的实现方式

在面向对象的编程中,多态性有编译时多态 和运行时多态两种实现方式。

编译时多态也称作静态多态 ,通过方法重载来实现,Java编译器会在编译时根据方法调用时传入的参数类型和数量来决定具体调用哪一个重载方法。

运行时多态也称作动态多态 ,通过方法重写来实现,当父类的引用调用方法时,在运行时会根据对象的实际类型来决定实际执行的子类重写之后的方法。

其中,

方法重载 指的是同一个类的多个方法,它们的名称相同但是参数列表不同。

方法重写 指的是子类 重写了父类的一个或者多个方法。

相关推荐
Sarvartha16 分钟前
Object 类
java·开发语言
知守观18 分钟前
feign-core 就在依赖树里,运行时却找不到类:一次 provided scope 引发的启动失败排查
java·spring cloud·maven
她的男孩19 分钟前
企业接口照样拦得住:独立 Flyway、@RequiresFeature 与离线许可证
java·spring boot·后端
十年Java程序媛20 分钟前
Lambda 与函数式接口|别只会复制 ()->{},底层规则和坑一次性讲清
java·spring boot·后端
Nozokime27 分钟前
ThreadLocal 在流式 Agent 里静默失效:LangChain4j 轨迹埋点的零侵入方案
java
j7~30 分钟前
【C++ 标准项目】发布订阅消息队列 (篇七):项目创建与基础工具模块搭建
开发语言·c++·log4j·uuid·protobuf·helper工具·消息定义类型和交换机类型定义
小宋102132 分钟前
OpenTelemetry GenAI可观测性实战:串起模型、工具、Token与错误
java·人工智能·算法·贪心算法
leisoo809734 分钟前
股票筹码分布怎么用获利比例成本区间与集中度实战 IG50免费开源股票数据API接口
开发语言·jvm·数据库·python·开源
Lazionr1 小时前
unordered_map和unordered_set的使用
开发语言·c++·算法
m0_587383001 小时前
工业场景设备维修维护实战技巧 全流程标准化落地与常见问题排查指南
java·spring·小程序·架构·需求分析