我试图为游戏中的对象定义一些属性,所以我使用接口来指定它们。
我已经创建了一个Interactable
界面,但后来我想创建一个Eatable
界面,显然会实现Interactable
,因为互动就是吃,但我可以&#这样做是因为我无法在界面中实现方法。
有解决方法吗?
public interface Interactable {
void interact();
}
public interface Eatable implements Interactable {
public void eat();
public void interact() {
// Obviously, this doesn't work
eat();
}
}
答案 0 :(得分:1)
首先,Interfaces只能扩展另一个接口,使Eatable
抽象类并生成实现Interactable
。
public abstract class Eatable implements Interactable {
public void eat();
public void interact() {
eat();
}
}
答案 1 :(得分:1)
Iterfaces可以“扩展”其他接口。
在这种情况下,我会创建一个Abstract Base Class“Food”或者实现Interactable的东西,其interact()方法调用一个抽象的eat()方法。