cosen1024 / Java-Interview

「Java面试小抄」一份通向理想互联网公司的面试汇总,包括 Java基础、Java并发、JVM、MySQL、Redis、Spring、MyBatis、Kafka、计算机操作系统、计算机网络、系统设计、分布式、Java 项目实战等

Home Page:https://www.javalearn.cn/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

yebuguntang opened this issue · comments

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

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

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

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

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