[英]How to use same variable name to instantiate the object of different classes
我正在尝试创建具有相同名称的引用变量,并根据环境将类对象分配给相同的对象。 请检查下面的示例代码。
class EnvA{
public void create(){
.....
}
}
class EnvB{
public void create(){
.....
}
}
class main{
EnvA obj = null;
EnvB obj= null;
public static void main(string[] args)
if(itisEnvB)
obj = new EnvA();
else
obj = new EnvB();
//create method should be called depending on which environment is set
obj.create();
}
在上面的代码中,我需要将obj
分配给EnvA
或EnvB
对象EnvB
。 因为我将在整个“ class main”中仅使用obj
。
您应该定义一个具有create()
方法的接口, EnvA
和EnvB
都应实现它。
然后obj
的类型将obj
该接口的类型。
public interface Createable
{
public void create();
}
class EnvA implements Createable {...}
class EnvB implements Createable {...}
...
Createable obj = null;
if(itisEnvB) {
obj = new EnvA ();
} else {
obj = new EnvB ();
}
obj.create();
请注意,为了在您的main
方法中引用obj
,它应该是类的静态成员或main
方法的局部变量。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.