我正在尝试创建一个shapes类,其子类将是具有恒定数量的面孔的形状。我想让这个shapes类实现一个接口,该接口将确保每个类都实现几个将在构造函数中分配的常量。
public abstract class Shapes{
public static final int edges;
public Shapes(int edges) {
this.edges = edges;
}
}
public interface Shapeable{
int edges;
}
这给了我一个编译错误,说该变量可能没有初始化。我应该怎么做才能确保形状的所有子类都实现一个名为edge的变量,但是每个类都会发生变化?
最佳答案
您不能强制类具有变量,但是可以通过接口强制其具有方法。将界面中的edges
变量更改为方法。
public interface Shapeable {
int getNumEdges();
}
然后,实现者必须实现该方法,但是他们可以自由返回他们想要的任意数量的边。
关于java - Java-在接口(interface)中声明变量但不分配它们,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23377604/