有3个名为Alpha,Beta和Omega的类。 Alpha类和Beta类继承了接口OInterface,它有2个函数叫做start和run。在Omega Class的构造函数中,我们传递值1或2.
如果值为1,我需要创建Alpha类的对象或Beta的对象。 我怎么能这样做?
答案 0 :(得分:2)
class Omega
{
private OInterface iDontKnowHowToNameIt;
public Omega(int value)
{
if (value == 1)
iDontKnowHowToNameIt = new Alpha();
else if (value == 2)
iDontKnowHowToNameIt = new Beta();
else
throw new ArgumentException("Wrong value passed");
}
}
答案 1 :(得分:1)
如果您只需要接口的方法声明:
OInterface obj = null;
public Omega(int type)
{
if(type == 1)
obj = new Alpha();
else if (type == 2)
obj = new Beta();
else
throw new ArgumentException("Wrong type provided: " + type, "type");
}
现在您可以使用您需要的方法,例如:
public void RunSomething()
{
obj.Run();
}