Java-Interview icon indicating copy to clipboard operation
Java-Interview copied to clipboard

Java中是否可以覆盖(override)一个private方法

Open yebuguntang opened this issue 3 years ago • 0 comments

Java中是否可以覆盖(override)一个private方法

答:不能覆盖一个private方法。

定义来分析: 查阅了很多资料,查到最好的定义是:重写(覆盖/覆写/override)是子类对父类的允许访问的方法的实现过程进行重新编写, 返回值和形参都不能改变。

继承层面分析: 重写的前提是继承,继承只能继承非私有的属性和方法(但可以通过暴露的公共方法访问私有属性和方法)。子类对父类的私有方法并不可见。所以可见方法只是同名并不是重写。 可以在方法上面加上注解@Override进行验证,报错信息如下:Method does not override method from its superclass。

写的很啰嗦,希望有大佬可以给出更简洁的答案。 对具体有关重写父类方法的规则感兴趣的可以读下这篇博客https://blog.csdn.net/heshuangyuan123/article/details/38896329

yebuguntang avatar Feb 07 '22 14:02 yebuguntang