接口可以禁止具有特定数据类型的对象吗?

时间:2019-01-30 05:44:06

标签: java interface

接口可以强制类重写特定方法。是否还可以强制类包含特定变量?也就是说,implements MortalEntity必须包含boolean alive的类?

2 个答案:

答案 0 :(得分:1)

如果您正在寻找要附加到接口的变量(属性),则可以通过创建实现该接口的抽象类并在抽象类本身中定义变量来实现此目的。

如下所示

abstract class implements theInterface {
    public String variable;
}

答案 1 :(得分:1)

不是,但是您可以通过要求该类具有用于该类的外部用户可以假定为boolean alive变量的getter和setter来达到几乎相同的目的。

以代码形式:

public interface MortalEntity {
    boolean isAlive();
    void setIsAlive();
    void setIsNotAlive();
    // alternative setter (less readable IMO)
    // void setIsAlive(boolean isAlive);
}

从某种意义上讲,这是一个更好的选择,因为您最终可能会实现更复杂的实现,其中单个isAlive变量已不再足够。这样,对具有精确变量的要求就变得不方便了。