Java 实现另一个接口的变通接口
我试图为游戏中的对象定义一些属性,所以我使用接口来指定它们 我已经创建了一个Java 实现另一个接口的变通接口,java,interface,implements,Java,Interface,Implements,我试图为游戏中的对象定义一些属性,所以我使用接口来指定它们 我已经创建了一个interactiable接口,但是我想创建一个Eatable接口,它显然实现了interactiable,因为交互是为了吃,但我不能这样做,因为我不能在接口中实现方法 有解决办法吗 public interface Interactable { void interact(); } public interface Eatable implements Interactable { public vo
interactiable
接口,但是我想创建一个Eatable
接口,它显然实现了interactiable
,因为交互是为了吃,但我不能这样做,因为我不能在接口中实现方法
有解决办法吗
public interface Interactable {
void interact();
}
public interface Eatable implements Interactable {
public void eat();
public void interact() {
// Obviously, this doesn't work
eat();
}
}
首先,接口只能扩展另一个接口,使
Eatable
抽象类和实现可交互
public abstract class Eatable implements Interactable {
public void eat();
public void interact() {
eat();
}
}
Iterfaces可以“扩展”其他接口
不过,在本例中,我会创建一个抽象基类“Food”或实现可交互的东西,其interact()方法调用一个抽象eat()方法。谢谢您的快速回答!问题是,我希望将Eatable作为一个接口来维护,因为我希望Apple实现它,而不是从它扩展(由于java的多重实现:Eatable、moveable等),我认为您不希望Apple直接实现所有这些东西。在大多数情况下,你最好有一个实现可食用、可移动等功能的父代(同样是食物或任何东西)。听起来你在寻找多重继承解决方案,但在大多数情况下,有一个更好的——如果不太明显的话——单一继承解决方案。与另一个答案相同:谢谢你的快速回答!问题是,我希望将Eatable作为一个接口来维护,因为我希望Apple实现它,而不是从它扩展(由于java的多重实现:Eatable、moveable等),接口不能实现方法——至少从java 7开始;Java8很可能会引入for接口。您可能需要重新思考您的设计—继承是将这些行为添加到对象中的最合适的方法吗?