я следующий код:Невозможно сделать статическую ссылку на общий подкласс (Java)
class SuperClass {
public static String getName() { return "super"; }
}
class SubClass extends SuperClass {
public static String getName() { return "sub"; }
}
public class Dummy<T extends SuperClass> {
public void print() {
System.out.println("SuperClass: " + SuperClass.getName());
System.out.println("SubClass: " + SubClass.getName());
System.out.println("T: " + T.getName());
}
public static void main(String[] args) {
new Dummy<SubClass>().print();
}
}
Этот код выводит следующее:
SuperClass: super
SubClass: sub
T: super
Мой вопрос: Почему не T .getName() возвращает значение SubClass.getName()? В конце концов, я указал, что T == SubClass. Или вызовы статической функции недействительны для общих ссылок?
Большое спасибо!
Хорошо, это ясно до сих пор. Но как я могу затем вызвать статический метод SubClass.getName() из Dummy с помощью T? Я хотел бы иметь много дополнительных подклассов, в которых Dummy может вызывать getName() прозрачно. – JeffreyHammansson