private方法不能被重写,子类无法继承或调用父类private方法,同名方法是全新定义;@override会报错;调用静态绑定,不体现多态;需改用protected/public实现多态。

不能被重写。
private 方法根本不参与继承
子类在编译时完全“看不见”父类的 private 方法。它既不会出现在子类的继承成员列表中,也不能通过 super.xxx() 调用。你在子类里写一个同名、同参数、同返回类型的方法,不是重写,而是定义了一个全新的、和父类毫无关系的方法。
@Override 注解会直接报错
这是最快速、最可靠的判断方式:在子类方法上加上 @Override,如果编译器提示 “Method does not override method from its superclass”,就说明这个方法无法被重写。private 方法一定触发该错误。
调用行为始终静态绑定
父类中 public 方法内部调用了自己的 private 方法,那么无论子类是否定义了同名 private 方法,运行时都只会执行父类的那个实现。JVM 在编译期就确定了调用目标,不走动态分派,也不体现多态。
想实现多态,得改访问修饰符
如果业务需要子类提供不同逻辑,应把父类方法改为 protected 或 public,再在子类中用 @Override 显式重写。这样既能保障封装性,又能支持运行时多态。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











