接口的重点是指定公共API。接口没有状态。您创建的任何变量实际上都是常量(因此请注意在接口中创建可变对象)。
基本上,接口表示此处是实现该接口的类必须支持的所有方法。如果Java的创建者不允许在接口中使用常量,但现在为时已晚(在某些情况下,在接口中使用常量是明智的),则可能会更好。
因为您只是指定必须实现的方法,所以不知道状态(没有实例变量)。如果要要求每个类都具有某个变量,则需要使用抽象类。
最后,通常来说,您不应该使用公共变量,因此从一开始就将变量放入接口的想法很糟糕。
简短的答案-您无法做您想做的事情,因为Java中这是“错误的”。
编辑:
class Tile implements Rectangle { private int height; private int width; @Override public int getHeight() { return height; } @Override public int getWidth() { return width; } @Override public void setHeight(int h) { height = h; } @Override public void setWidth(int w) { width = w; }}一个替代版本是:
abstract class AbstractRectangle implements Rectangle { private int height; private int width; @Override public int getHeight() { return height; } @Override public int getWidth() { return width; } @Override public void setHeight(int h) { height = h; } @Override public void setWidth(int w) { width = w; }}class Tile extends AbstractRectangle {}


