我正在尝试创建一个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/

10-11 21:05