方法重载体现编译时多态,调用版本在编译期根据参数类型静态绑定,不依赖运行时对象状态;它通过同一方法名、不同参数实现语义适配,与重写解决的运行时动态分派问题分属不同层级。

方法重载体现的是编译时多态,它的“静态特性”指:调用哪个重载版本,在代码编译完成那一刻就已确定,不依赖程序运行时的对象状态。
重载的多态性来自“同一方法名,不同参数语义”
重载不是为了替换行为,而是为同一操作提供多种输入适配方式。比如 add(int, int) 和 add(double, double) 都叫 add,但语义不同——前者做整数加法,后者做浮点加法。编译器根据你传入的字面量类型或变量声明类型,直接选出最匹配的那个版本,整个过程不查对象、不看继承关系、不等运行。
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
静态性体现在编译期绑定,与运行时无关
- 变量声明类型决定重载选择: Object obj = "hello"; print(obj); 一定调用 print(Object),哪怕 obj 实际是 String
- 泛型擦除后类型信息丢失: List
和 List 在重载中都被视为 List,无法区分 - 自动装箱会引入隐式候选:传 int 可能匹配 method(int)、method(long) 或 method(Integer),编译器按固定优先级选,全程无运行时参与
它和“运行时多态”不在一个层级上
重载解决的是“调用哪一份签名”的问题,属于前端解析;重写解决的是“执行哪一个实现”的问题,属于后端分派。两者协同:先靠重载选签名(静态),再靠重写找实现(动态)。例如:List
重载的多态,本质是语言对人类表达习惯的让步:允许同名不同义,而把分辨责任交给编译器——稳、快、可预测。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










