两个或多个接口具有相同的方法可以吗?

时间:2018-10-13 17:35:43

标签: java oop interface

我正在用Java做一个简单的游戏,对此我有疑问。

假设每个游戏角色都有一个界面

public interface Entity{
   Vector2 getPosition();
   /* More methods...*/
}

然后,我想创建一个名为Automata的接口,该接口由使用AI的每个类实现(这可能是Entity的特例,但由于可重用性,我认为是分开的)

public interface Automata{
  Vector2 getPosition(); // The AI stuff needs to know this
  /* More methods needed for AI (some may also be the same as Entity)... */
}

我认为这促进了模块化,因为每个接口都描述了其方法,而不必担心其他接口的存在,但是在我撰写本文时,我感觉自己在重复自己,所以拥有这两个(或可能更多)接口用相同的方法不好吗?

1 个答案:

答案 0 :(得分:6)

如果两个接口之间都有共同点,则可以定义一个父接口,然后EntityAutomata可以对其进行扩展。

让我在下面进行说明:

interface AI {
    Vector2 getPosition();
}

interface Entity extends AI { }
interface Automata extends AI { }

这样,作为AI一部分的任何其他接口都无需显式添加其他方法,而只需扩展AI