Java中是否可以覆盖(override)一个private或者是static的方法?

2025-05-02 06:29:50
推荐回答(2个)
回答1:

Java中static方法不能被覆盖,因为方法覆盖是基于运行时动态绑定的,而static方法是编译时静态绑定的。static方法跟类的任何实例都不相关,所以概念上不适用。

回答2:

static 的意思是”没有状态“,”状态“是一个对象实例的某个属性,显然它与”多态“是矛盾的,所以不能覆盖 static 方法。
private 是不可访问的,也不可覆盖,否则概念上就有些不合理之处,这要怎么自圆其说呢?