Я хотел бы знать причину, почему это первое разрешено в Java (или упс вообще) я помню, что статические методы являются общими для обоих родителей и ребенка классаПереосмысление статический метод в дочернем классе
public class Redefine extends Parent{
public static void test() {
}
}
class Parent{
public static void test() {
}
}
Q1: Поскольку Overriding не поддерживается для статических методов, как обе эти оболочки могут содержать одинаковые методы?
Q2: Если изменить метод в static, чтобы исключить исключение, его не компилировать. Почему так. Очевидно, что он не переопределяет, поэтому мне должно быть позволено делать новые исключения?
public class Redefine extends Parent{
public static void test() throws Exception{
}
}
re: Q2: Если вы попробуете OP-версию Redefine.test(), которая объявлена как 'throws Exception', тогда вы должны получить ошибку компилятора' Exception Exception 'несовместимо с предложением throws в Parent.test() ' , – mikej