Существуют следующие ограничения типов:
При объявлении параметризованного класса тип параметра можно ограничить только сверху, зато сразу несколькими ограничителями (правила наследования в силе - можно ограничить одним классов и любым количеством интерфейсов).
- upper bound - ключевое слово extends
- lower bound - ключевое слово super.
- не ограничивать
University unboundedUniversity; University<?> sameUnboundedUniversity;
- ограничивать снизу
University<? extends Student> lowerBoundedUniversity;
- ограничивать сверху
University<? super Genius> upperBoundedUniversity
При объявлении параметризованного класса тип параметра можно ограничить только сверху, зато сразу несколькими ограничителями (правила наследования в силе - можно ограничить одним классов и любым количеством интерфейсов).
class University<T extends Student & Educable & Callable>
Комментариев нет:
Отправить комментарий