接口可以强制类重写特定方法。是否还可以强制类包含特定变量?也就是说,implements MortalEntity
必须包含boolean alive
的类?
答案 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
变量已不再足够。这样,对具有精确变量的要求就变得不方便了。