Java 静态方法不能被重写

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

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

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

根据下面的参考资料,重写是为了实现多态的,运行类型的不确定导致了动态编译时存在了运行多种方法的可能性,使得语言更加灵活。但对象会运行哪个静态方法在静态编译时就确定了,与动态编译的环节无关,所以重写静态方法并没有实现多态的目的。

参考资料:
关于静态方法为什么不能被重写的一点思考以及overload的一些坑。
『踩坑记录』Java中static方法为什么不能被重写

posted @   _lyl  阅读(338)  评论(1编辑  收藏  举报
相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示