java - 覆盖接口(interface)?

标签 java interface minecraft overriding minecraft-forge

我正在为游戏 Minecraft 创建一个模组,它有一个接口(interface)来实现游戏中的命令。我需要 mod 来实现该接口(interface),但使用不兼容的方法(不同的返回类型)重写其中一个方法。但我需要防止实现该接口(interface)的其他类无法工作或无法被游戏识别的情况。

我认为这需要使用与原始接口(interface)相同的新接口(interface)覆盖接口(interface),但使用该方法的重载版本来支持 mod 的需求。这可能吗(或者我有其他方法可以做到这一点吗?)

最佳答案

考虑接口(interface)的一种方式是将其视为契约。
实现类必须严格遵守这个契约。 这意味着方法签名(包括返回值和参数)必须完全匹配。
接口(interface)的全部意义在于在不严格了解实现的情况下定义交互。

如果您希望实现的交互不同,那么您可能正在尝试以非预期的方式使用某些东西。

即使可以继承一个接口(interface),它也会很快变得困惑。 创建一个新接口(interface)可能最符合您的利益(所有其他方法都相同)。 由于它无法与使用接口(interface) A 的类进行比较,因此您可以通过将其完全分离来省去麻烦。

关于java - 覆盖接口(interface)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34620000/

相关文章:

java - native 查询中未设置参数

java - 将泛型转换为其子类

java - 使用已实现的类调用接口(interface)参数方法时出错

vb.net - 可以在 VB.NET 中追溯实现接口(interface)吗?

java - 您如何将正确的 ABI 版本与外部 jar 的 GCJ 链接起来?

java - 使用 Java 解析 <ul class ="news-list">

java - CDI 没有看到拦截器

java - Antlr4.6 BaseVisitor 和 Visitor 错误 : Visitor (Interface) is abstract; cannot be instantiated BaseVisitor (Class) & super() error

java - Minecraft 织物编码错误 : Exception while loading entries for entrypoint 'main' provided by 'myfirstmod'

java - 如何从我的 Minecraft 服务器查看和编辑玩家数据的特定方面?