Могу ли я принудительно преобразовать тип переменной в расширенном классе в подтип в Java? - PullRequest
0 голосов
/ 26 марта 2019

Имея это:

public class A{}
public class B extends A{}
public class C{
    protected A x;
}

Есть ли способ создать класс D, который расширяет C так, что тип x должен быть B во всех экземплярах D? Обратите внимание, что C - это класс, который я пишу, поэтому я мог отредактировать его специально для удовлетворения потребностей D.

1 Ответ

1 голос
/ 26 марта 2019

Использовать универсальный тип

public class C<T>{
    protected T x;
}

public class D extends C<SomeConcreteType>{
     //x will be SomeConcreteType
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...