Мне было интересно, почему мы должны использовать extends
в java дженериках. Например:
class Team<T extends Player>
И у нас могут быть разные типы игроков, унаследованные от исходного класса Player:
class FootballPlayer extends Player
class BaseballPlayer extends Player
Почему мы должны использовать <T extends Player>
в Team
класс. Разве мы не можем просто использовать Player
?
Когда мы добавляем, например, FootballPlayer
к <extends Player>
, это работает нормально, но, конечно, если бы мы добавили FootballPlayer
к <Player>
, тогда это сработало бы, потому что FootballPlayer
- это игрок? Когда мы делаем <T extends Player>
, это означает, что все, что мы добавляем, должно наследовать от Player
. Так почему же просто <Player>
не работает?
Спасибо