2

我正在尝试为游戏中的对象定义一些属性,因此我使用接口来指定它们。

我已经创建了一个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();
    }
}
4

2 回答 2

1

首先,接口只能扩展另一个接口,制作Eatable 抽象类和实现Interactable

public abstract class Eatable implements Interactable {
    public void eat();
    public void interact() {
        eat();
    }
}
于 2012-12-10T00:20:25.843 回答
1

Iterfaces 可以“扩展”其他接口。

不过,在这种情况下,我会创建一个抽象基类“Food”或实现 Interactable 的东西,并且它的 interact() 方法调用一个抽象的 eat() 方法。

于 2012-12-10T00:20:31.393 回答