父类的私有方法不能被子类重载,因其作用域仅限于声明它的类内部,子类不可见、不可继承、不可调用,更无法参与重载或重写;子类中同名方法仅为独立新定义。

父类的私有方法不能被子类重载。
私有方法对子类不可见
private 方法的作用域仅限于声明它的类内部。子类在编译时根本“看不到”父类的 private 方法,也就无法基于它做任何操作——包括重载。重载要求在同一作用域(比如同一个类或子类中)存在多个同名但参数不同的方法,而子类连父类 private 方法的名字都不知道,自然谈不上在同一作用域内与之构成重载关系。
子类中写同名方法不是重载,而是全新定义
如果子类恰好定义了一个和父类 private 方法同名、同参数的方法,这既不是重载,也不是重写,只是子类自己独立声明的一个新方法。它和父类方法在字节码层面毫无关联,彼此作用域隔离,互不影响。
重载只发生在可访问范围内
重载是编译期行为,依赖编译器识别同一作用域内的多个候选方法。只有当方法对当前类可见(public/protected/default),才能参与重载解析。private 方法不满足这一前提,因此:
- 不能被子类重载
- 不能被子类重写
- 不能被子类继承或调用(包括 super 调用)
验证方式很简单
在子类中尝试写一个与父类 private 方法同名、参数不同的方法,再加 @Override 注解——会编译失败;不加注解则能通过,但该方法和父类之间零关系。这也反向说明:它连“被重写”的资格都没有,更不可能参与重载。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











