1.子类不能重写父类的静态方法,也不能把父类不是静态的重写成静态的方法。
在子类中声明和父类相同的方法就可以将父类的静态方法隐藏!!
就是为了达到重写的目的,所以就要用到隐藏
2.
Java中父类的静态方法确实不能被重写的,但是有的人可能去做实验发现在子类中去重写父类static方法时,并没什么问题。具体解释下。 public class Parent { public static void add(){ public class Children extends Parent { public static void add(){ 上面两个类并没发现在系统中报错,并通过测试 public static void main(String[] args) { //Parent ch = new Children(); 上面的测试可以执行通过;但是大家注意红色标注部分,问题就在这里,这两句引用的实例都是new Children();如果静态方法能被重写,这两句执行结果应该都为"=========Children“,但是事实不是这样,两句都是各自调用各自的方法。所以说静态方法并没被重写,两者的方法各自独立。 |