关于java:在子类中重新定义静态方法

Redefining static method in child class

我想知道为什么在Java中首先允许这个问题(或者一般的OOP)我记得静态方法对于父类和子类都很常见

1
2
3
4
5
6
7
8
9
10
11
12
public class Redefine extends Parent{
    public static void test () {

    }
}


class Parent{
    public static void test () {

    }
}

问题1:由于静态方法不支持重写,那么两个类如何包含相同的方法?

问题2:如果将static中的方法更改为引发未定义的异常,则不编译该异常。为什么会这样。它显然不是重写的,所以应该允许我抛出新的异常,对吗?

1
2
3
4
5
public class Redefine extends Parent{
    public static void test () throws Exception{

    }
}


a1::EDOCX1-0方法是每类的。它们与多态性方面的继承层次结构无关。因此,调用EDOCX1将调用父方法,而调用EDOCX1将调用子方法。

A2:JLS 8.4.8写道:

BLCK1


你在覆盖它,你在隐藏它

HTTP://FAQ.JavaRuncWeb/Java/重写VSHIDEN

你有什么例外?


问题1:静态方法不会被重写,所以这是两个具有相同签名的不同方法。一个使用parent.test()调用,另一个使用redefine.test()调用

问题2:你的方法似乎有效。你犯了什么错误?