如何从抽象类中调用方法

时间:2017-11-24 17:09:31

标签: java abstract-class bluej method-call

我和我的一个朋友正在玩游戏。我试图将方法的返回值调用到同一个类中的另一个方法。我知道在正常情况下如何做到这一点,但我正在使用的类是抽象的。我已经浏览了互联网的答案,但我没有找到任何东西。这是我正在使用的一些代码:

public abstract class Game implements ActionListener 
{
   public static char KBoard(char w, char a, char s, char d) //This method takes in a keyboard command from the user, and returns that char.
{
      Scanner scan = new Scanner(System.in);
      System.out.print("");
      char kBoard = scan.next().charAt(0);
      return kBoard;
   }

   public static int MoveX (int velocity) 
{
      velocity = 5;//character moves this distance when a control key is pressed

      Game kBoard = new Game();//These lines here will
      kboard.KBoard();//call the KBoard method from above and the char it returns^^
      Switch ();
      {
        Case w:
        characterPosX -= velocity;//if the w key is pressed, character moves up
        break;

        Case s:
        characterPosX += velocity;//if the s key is pressed, character moves down
        break;
     }
    return characterPosX;//returns the new X position for the game character
  }
 }

2 个答案:

答案 0 :(得分:2)

您无法创建instance的{​​{1}},并且您不需要abstract class对象来调用create方法。而是执行以下操作 -

static

答案 1 :(得分:1)

不能直接使用抽象类。你需要有一个实际的专业类来使用它。然后,由于您的方法是静态的,而不是使用专用类的实例,您只需使用基类的名称,如下所示:

int x = SpecializedClassName.MoveX(1);

这可以从任何地方发生,因为静态方法总是可用的。

或者,您也可以使用

int x = Game.MoveX(1);