Допустим, у меня есть абстрактный класс с именем Player
.Классы GameAPlayer
и GameBPlayer
наследуются от Player
.В свою очередь, пара абстрактных классов наследуются от GameAPlayer
и GameBPlayer
соответственно.
Допустим, у меня есть еще один абстрактный класс с именем Engine
, который содержит List<Player>
.Классы GameAEngine
и GameBEngine
оба наследуются от Engine
.Я точно знаю, что все игроки в GameAEngine
будут иметь тип GameAPlayer
, и что все игроки в GameBEngine
будут иметь тип GameBPlayer
.
Я не могу переместить List<Player>
в GameAEngine
и GameBEngine
, так как я использую список в самом Engine
.
Необходимость вводить Player
в GameAPlayer
и GameBPlayer
каждый раз, когда я использую список в их соответствующих движках, просто кажется нечистым.Есть ли способ избежать этого?