与Android的接口

时间:2013-06-14 07:09:06

标签: java android interface

我正在浏览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不允许接口有字段。这对于Android运行Java是不同的?

3 个答案:

答案 0 :(得分:0)

这是可能的,这里是相同问题的链接,但是对于Java,而不是Android特定的。

inner class within Interface

答案 1 :(得分:0)

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

答案 2 :(得分:0)

Java中接口的经验法则:

  1. 只能包含抽象方法最终字段
  2. 不能用作基类
  3. 因此它仍然可以包含字段,但它必须是最终的。但是,请注意Interface还可以包含内部类,它允许创建任何类型的字段。