我正在浏览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是不同的?
答案 0 :(得分:0)
这是可能的,这里是相同问题的链接,但是对于Java,而不是Android特定的。
答案 1 :(得分:0)
找到定义字段的接口并不罕见,当您实现接口时,实现将从接口继承字段。
答案 2 :(得分:0)
Java中接口的经验法则:
因此它仍然可以包含字段,但它必须是最终的。但是,请注意Interface还可以包含内部类,它允许创建任何类型的字段。