【发布时间】:2016-08-13 22:32:10
【问题描述】:
我有一个超类 TetrisPiece,每个变体都有子类,即
class PieceI extends TetrisPiece{
}
class PieceJ extends TetrisPiece{
}
etc...
在另一个类中,我有一个基于随机数的 switch 语句,它创建一个随机片段
switch(rand){
//I
case 1: {
PieceI pieceI = new PieceI();
break;
}
//T
case 2: {
PieceT pieceT = new PieceT();
break;
}
etc...
default:
break;
}
我的目的是提取从 switch 语句的范围生成的片段,以便稍后在课堂上使用它。
由于范围问题,switch 方法显然不起作用,并且我无法在 switch 语句之外创建超类数组,因为由于随机化,我无法转换索引。
感谢任何帮助。
【问题讨论】:
-
如何您打算以后使用它?
TetrisPiece piece;,然后您可以将PieceI或PieceJ实例分配给piece。 -
最好的办法是 PieceI 和 PieceJ 共用一个接口。
-
用多态替换你的switch语句
-
ElliottFrisch 问题是由于使用了随机子类,我不知道如何分配它们。 @haifzhan 你能更深入地解释一下吗
-
@ElliottFrisch 这似乎不起作用。我尝试访问子类的方法或实例变量,但我只能访问超类
标签: java inheritance scope subclass superclass