重载发生在同一类内部,继承传递方法声明但不传递重载关系;子类或孙类可基于继承的方法名在本类中显式定义参数不同的新方法实现各自独立的重载。

可以,但要注意“重载”和“继承”的作用范围——重载发生在同一个类内部,而继承传递的是方法声明本身。
重载只在当前类内有效
重载(Overload)是编译期行为,取决于调用时的**实参类型和数量**,以及**当前作用域中可见的方法集合**。子类继承父类方法后,这些方法在子类中“可见”,但它们本身不是子类定义的;若要在子类中对同一方法名做重载,必须在子类中**显式定义新方法**,参数列表与父类(或本类已有方法)不同。
- 父类有
void print(String s),子类可以新增void print(int n)—— 这是子类自己的重载 - 孙类(子类的子类)同样可以新增
void print(boolean b)—— 这是孙类自己的重载,与父类、子类的重载无关 - 所有这些重载方法彼此独立,不构成覆盖关系,也不互相影响
继承让重载“可延续”,但不自动发生
父类的方法被子类继承后,子类获得了该方法的调用能力;孙类又继承子类,也就间接获得了父类方法(只要不是 private)。此时:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- 孙类可以直接调用从父类继承来的
print(String) - 孙类也可在自己内部定义
print(double d)—— 这是孙类对同名方法的新重载 - 这个新重载只属于孙类,不会改变父类或子类中已有的任何方法
关键区别:重载 vs 重写
别混淆概念:
- 重载:同一类中,方法名相同、参数不同 → 编译时决定,支持多态的静态形式
- 重写:子类中定义与父类签名完全相同的方法 → 运行时决定,体现动态多态
- 继承传递的是可被重写或可参与重载的“方法声明”,但不传递“重载关系”本身
所以,子类的子类完全可以基于继承来的方法名继续重载,只要它在自己类里写出参数不同的新方法就行。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










