我遇到的情况是我的代码结构如下。
class BaseClass ..
class DerivedClass1 extends BaseClass ...
class DerivedClass2 extends BaseClass ...
class DerivedClass3 extends BaseClass ...
现在在运行时我想使用任何一个基于整数classId
的派生类。
类似于,
BaseClass myObj = new ((classId == 1) ? DerivedClass1 : (classId == 2) ? DerivedClass2 : DerivedClass3
我想要某种随机行为。例如,有时我的应用程序可能会画一条线,而有时它可能会画一个圆。
如何用 Java 编写上述功能?
最佳答案
只需使用多态性和您想要的任何样式(switch/if-else)即可。例如:
基类 myObj;
switch(classId): {
case 1:
myObj = new DerivedClass1();
break;
case 2:
myObj = new DerivedClass2();
break;
case 3:
myObj = new DerivedClass3();
break
default:
throw RuntimeException ("Id not recognized);
}
Do something with object;
关于java - 运行时派生类选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22821031/