是否可以使用相同变量名的多个类型?

问题描述 投票:0回答:2

第一次用它来提问,但我希望我能得到答案。

所以我的问题是,我正在制作一个程序,它连接到机器人(在这种情况下是机器人乐高(EV3或NXT))。每个机器人都有自己的类来启动,EV3有“xxxEV3”和NXT“xxxNXT”。因为我没有总是接近物理机器人我创建了一个新类(我称之为myRobot),它具有与其他两个类相同的方法,到目前为止我使用相同的“变量”(同名)进行测试,但每当我改变物理机器人时,我必须对线路进行评论,这样就不会出现任何问题。

例:

class gui extends.... {
   //private myRobot robot;
   //private xxxEV3 robot;
   private xxxNXT robot;
   public gui() {
      //robot = new myRobot();
      //robot = new xxxEV3();
      robot = new xxxNXT();
   ...
   }
   public void move(int dist) {
       robot.move(dist);
   }
}

所以你可以看到,每次我改变机器人的“类型”时我都要评论所以不会有任何错误。

所以现在我想在我的GUI上下拉,如果我选择myRobot,它会使用与上面相同的名称(机器人)启动myRobot类,或者如果我选择EV3,它会使用robot作为变量的名称启动我的xxxEV3类...

我希望自己能够清楚地得到一个答案,因为我自己真的无法得到答案。

java
2个回答
0
投票

不,由于设置类型时的混淆,这是不可能的。但是这样做的一种方法是使用继承并从基础Robot接口扩展myRobot,EV3,xxxEV3等。

public interface Robot {
    public void move(int distance);
}

public class myRobot implements Robot {
    public void move(int distance) {
        // implementation here
    }
}

0
投票

您可以创建一个像“selectedRobot”这样的变量,并在您的代码中使用它,并在需要时为其分配所有机器人。

© www.soinside.com 2019 - 2024. All rights reserved.