如何使用相同的变量名来实例化不同类的对象

Pra*_* PS 0 java

我正在尝试创建一个具有相同名称的引用变量,并根据环境将类对象分配给它们.请检查下面的示例代码.

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();
}
Run Code Online (Sandbox Code Playgroud)

在上面的代码中,我需要obj分配给对象参考EnvA或者EnvB.因为我只会obj在我的整个"班主"中使用.

Era*_*ran 6

你应该定义具有一个接口create()方法,都EnvAEnvB应该实现它.

然后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();
Run Code Online (Sandbox Code Playgroud)

请注意,为了obj在您的main方法中引用,它应该是您的类的静态成员或方法的局部变量main.