0

我正在浏览Beginning Android Games 2nd Edition,并遇到了一些我不明白的代码。在清单 3-1 中有一个定义为 fallows 的接口

  public interface Input
     {
     public static class KeyEvent 
     {
      public static final int KEY_DOWN = 0;
      public static final int KEY_UP = 1;
      public int type;
      public int keyCode;
      public char keyChar;
     }
     public static class TouchEvent
     {
      public static final int TOUCH_DOWN = 0;
      public static final int TOUCH_UP = 1;
      public static final int TOUCH_DRAGGED = 2;
      public int type;
      public int x, y;
      public int pointer;
     }
     public boolean isKeyPressed(int keyCode);
     public boolean isTouchDown(int pointer);
     public int getTouchX(int pointer);
     public int getTouchY(int pointer);
     public float getAccelX();
     public float getAccelY();
     public float getAccelZ();
     public List<KeyEvent> getKeyEvents();
     public List<TouchEvent> getTouchEvents();
    }

我不明白的是,我认为 Java 不允许接口具有字段。这对于运行 Java 的 android 有什么不同吗?

4

3 回答 3

0

有可能,这是指向同一问题的链接,但针对 Java,而不是特定于 Android。

接口内的内部类

于 2013-06-14T07:13:48.637 回答
0

找到定义了字段的接口并不少见,当您实现接口时,实现将从接口继承字段。

于 2013-06-14T07:15:28.753 回答
0

Java 接口的经验法则:

  1. 必须只包含抽象方法最终字段
  2. 不能用作基类

因此它仍然可以包含字段,但它必须是最终的。但是,请注意,接口也可以包含内部类,它允许创建任何类型的字段。

于 2013-06-14T07:21:50.390 回答