繁体   English   中英

在接口上扩展方法

[英]Extending a method on an interface

这可能是基本的Java,但是我是该语言的新手,请原谅我

我想延长SetCustomName的方法LivingEntity ,这样,除了它是正常的步骤,它也将引发自定义事件/异常。

我尝试执行此操作会导致有关抽象的错误,并且不能具有主体。

另外,我无法确定这是类还是接口,这意味着我不确定是否应该使用扩展或实现。

最后,我希望添加此功能,而不是创建一个新对象。

您能否告诉我是否可行/将我引导到正确的方向? 非常感谢你的帮助。

查看了您从GitHub提供的文件。

LivingEntity是一个接口,因此您必须将其实现到另一个类中,因为不允许定义其方法。

正确地遵循艾默生的重写方法即可。 将您的自定义代码放在对super.setCustomName(name);的调用下。

LivingEntity是一个接口, CraftLivingEntity是一个类。 您只能扩展一个类,才能实现一个接口。 接口本身没有“正常步骤”。

如果您可以控制是否实例化CraftLivingEntity或其他类,请按如下所示扩展CLE

public class MyCraftLivingEntity extends CraftLivingEntity {

    @Override // just a marker annotation to help catch inheritance issues
    public void setCustomName(String name) {

         super.setCustomName(name);

         // do whatever else
    }
}

并实例化您的课程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM