Переопределение статического метода в дочернем классе

Я хотел бы знать причину, почему это сначала позволяется в Java (или ой в целом) я помню, что статические методы характерны и для родительского и для дочернего класса

public class Redefine extends Parent{
    public static void test () {

    }
}


class Parent{
    public static void test () {

    }
}

Q1: Так как Переопределение не поддерживается для статических методов, как оба Classe могут содержать те же методы?

Q2: Если изменение метод в помехах для выдачи исключения, не определенного не компиляция. почему имеет место. Его, очевидно, не переопределение, таким образом, мне нужно разрешить бросить новое право исключений?

public class Redefine extends Parent{
    public static void test () throws Exception{

    }
}
6
задан Sudhakar 15 July 2010 в 12:25
поделиться

3 ответа

A1: : статический метод для каждого класса. Они не имеют ничего общего с иерархиями наследования с точки зрения полиморфизма. Таким образом, вызов Parent.test () вызовет родительский метод, а вызов Redefine.test () вызовет дочерний метод.

A2: JLS 8.4.8 пишет:

Если класс объявляет статический метод m, то говорят, что объявление m скрывает любой метод m ', где подпись m является подподпись (§8.4.2) сигнатуры m 'в суперклассах и суперинтерфейсах класса, которые в противном случае были бы доступны для кода в классе.

Объявление метода не должно иметь предложения throws, которое конфликтует (§8.4.6) с предложением любого метода, который он переопределяет или скрывает; в противном случае возникает ошибка времени компиляции.

10
ответ дан 8 December 2019 в 17:18
поделиться

вы не переопределяете его, вы скрываете это

http://faq.javaranch.com/java/OverridingVsHiding

какое исключение вы получаете?

4
ответ дан 8 December 2019 в 17:18
поделиться

Q1: Статические методы не переопределяются, поэтому это два разных метода с одинаковой сигнатурой. Один вызывается с помощью Parent.test (), другой - с помощью Redefine.test ()

Q2: Ваш метод кажется правильным. Какая у вас ошибка?

0
ответ дан 8 December 2019 в 17:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: