Java 静态方法不能被重写

发布时间 2023-03-22 22:13:33作者: _lyl

1、静态方法不能被重写,如果重写静态方法,会编译报错的

父类子类使用相同的静态方法

2、如果不加@Override标签,是可以的。但这样写,父类的静态方法和子类的静态方法就没有什么关系了,我将它理解成形参列表相同的重构。实际效果类似于覆盖。


3、为什么静态方法不能被重写?

因为调用哪个静态方法是在编译的时候就确定的,编译类型是哪个,运行的就是哪个类的静态方法。而调用实例方法是在运行时确定的,对象的运行类型(对象的实际类型)是哪个,运行的就是哪个对象的方法。

参考资料:

关于静态方法为什么不能被重写的一点思考以及overload的一些坑。