这可能是基本的java,但我是该语言的新手,所以请原谅我
我想扩展SetCustomName的LivingEntity方法,这样除了正常的步骤之外,它还会抛出自定义事件/异常。
我尝试这样做会导致抽象错误,并且无法生成。
此外,我无法判断这是一个类还是一个接口,这意味着我不确定是否应该使用扩展或实现。
最后,我想要添加此功能,而不是创建一个新对象。
你能告诉我这是否可行/引导我走向正确的方向?非常感谢您的帮助。
答案 0 :(得分:2)
看看你从GitHub提供的文件..
LivingEntity是一个界面,所以你必须将它实现到另一个类中,因为它的方法是不允许定义的。
请遵循爱默生的重写方法,因为它是正确的。将自定义代码放在对super.setCustomName(name);。
的调用下答案 1 :(得分:1)
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
}
}
并改为实例化你的课程。