我正在为Android制作一个简单的游戏,我需要在代码中声明一个通用类以便稍后进行投射,我有3个类可供选择,并且他们选择了dinamically,我怎么能实现呢?
enum difficulty {
SIMPLE,
MEDIUM,
HARD
};
difficulty dif;
//assign dif
switch(dif) {
case SIMPLE:
...
break;
case MEDIUM:
...
break;
case HARD:
...
break;
}
这一切都取决于选择哪一个..
答案 0 :(得分:1)
创建interface
或abstract class
然后implements
(对于interface
)/ extends
(对于abstract
)相应的父类儿童班。
e.g。
public interface IEasy{
}
public class EasyClassA implements IEasy{
}
public class EasyClassB implements IEasy{
}
答案 1 :(得分:0)
或许使用一个难度基类,然后从一个类扩展到3个难度级别中的每个级别,然后在这些类中设置难度级别的东西?
所以这样:
public virtual DifficultyLevel
{
}
public EasyDifficulty extends DifficultyLevel
{
// do stuff here to set difficulty to easy
}
public MediumDifficulty extends DifficultyLevel
{
// do stuff here to set difficulty to medium
}
然后你可以从一个基本类型的DifficultyLevel转换为任何继承它的东西:D
答案 2 :(得分:0)
如果你想保持你的游戏简单,我认为你根本不需要实现子类。如果某些行为或逻辑(例如,不同的AI或边界属性)在困难之间发生变化,那么肯定是子类。但如果仅仅是配置一些数字(例如,电路板尺寸,移动速度,尝试次数,物理常数),那么只需使用3个初始化函数或switch
,就像你在问题中所做的那样。