У меня есть суперкласса TetrisPiece с подклассами для каждого изменения части, т.е.Сохранение переменного неизвестного типа подкласса в переключателе заявлении
class PieceI extends TetrisPiece{
}
class PieceJ extends TetrisPiece{
}
etc...
В другом классе у меня есть переключатель заявление на основе случайного числа, создает случайный кусок
switch(rand){
//I
case 1: {
PieceI pieceI = new PieceI();
break;
}
//T
case 2: {
PieceT pieceT = new PieceT();
break;
}
etc...
default:
break;
}
Мое намерение состоит в том, чтобы извлечь кусок, который генерируется из области действия оператора коммутатора, так что я могу использовать его в дальнейшем в классе.
Метод переключения, очевидно, не работает из-за проблемы с областью действия, и я не могу создать массив суперкласса вне оператора switch, потому что у меня не было бы возможности отображать индексы из-за рандомизации.
Любая помощь приветствуется.
** Как ** вы намерены использовать его позже? 'TetrisPiece piece; ', а затем вы можете назначить экземпляры' PieceI' или 'PieceJ'' '' '. –
Лучшим способом для PieceI и PieceJ является общий интерфейс. –
замените ваш оператор switch полиморфизмом – haifzhan