У меня есть общий интерфейс A<T>
, у меня есть класс B, который реализует A<String>
. Я создал класс C
, который расширяет B
и реализует A<Number>
. Для C
, я получаю высказывание об ошибке компиляции:Невозможно реализовать интерфейс с разными аргументами типа
A cannot be inherited with different type arguments <String> and <Number>.
Почему это не разрешено? Если ответ на это - стирание типа, то, пожалуйста, объясните подробно.
Пример кода:
public interface A<T> {
}
public class B implements A<String> {
}
public class C extends B implements A<Number> {
}
Было бы немного легче ответить на это, если бы вы предоставили скелет кода для работы. Ничего серьезного, но достаточно, чтобы воспроизвести ту же самую ошибку, с которой вы столкнулись. – Makoto
@Raj в вопросе пожалуйста – GurV
Как это можно? думаю об этом. C уже реализует A через B. –
GurV