Предположим, есть иерархия классов / интерфейсов:
class A<T>{
T method(T t){
return t;
}
}
class B<T> extends A{
T method(T t){ // method(T)' in 'B' clashes with 'method(T)' in 'A'; both methods have same erasure, yet neither overrides the other
return t;
}
}
Как мы видим, есть ошибка компилятора.
Я никогда не сталкивался с правилами обработки дженериков при наследовании. Каковы ограничения?
(пожалуйста, не путайте с наследованием в самом общем типе, я спрашиваю о наследовании в оригинальных классах
также не путайте с "Что такое необработанный тип", я знаю необработанные типы, в этом вопросе я хочу выяснить, каковы правила наследования)
также не смущайтесь, думая, что я хочу исправить эту ошибку. Конечно, класс B расширяет это исправить. Мой вопрос о том, «где я могу прочитать ограничения?»