【发布时间】:2016-01-05 19:45:25
【问题描述】:
我正在为 Minecraft 游戏创建一个 mod,它有一个接口来实现游戏中的命令。我需要 mod 来实现该接口,但用不兼容的方法(不同的返回类型)覆盖它的方法之一。但我需要防止实现该接口的其他类无法工作或无法被游戏识别的情况。
我认为这需要使用与原始接口相同的新接口覆盖接口,但需要使用该方法的重载版本来支持 mod 的需求。这可能吗(或者我有其他方法可以做到这一点吗?)
【问题讨论】:
-
不同的返回类型是原始返回类型的子类型吗?
-
您不能用返回不同类型的方法覆盖方法。子类化接口并添加一个新方法,使用不同的名称。
-
更具体。这个接口很可能是由 minecraft 引擎调用的,所以除非你修改它,否则不同的返回类型对调用者没有用。什么是界面?什么消耗它?为什么你“需要”修改它?
-
如果接口有一个方法,比如
int getIntVaue();,你不想尝试使用double getIntValue();覆盖它,子类化它并添加一个新方法double getDoubleValue();
标签: java interface minecraft overriding minecraft-forge