[英]Java child class not able to implement parent class's abstract method
I have the following. 我有以下几点。 If I keep the @Override, I get an error that the method must implement or override a supertype method. 如果保留@Override,则会收到错误消息,指出该方法必须实现或重写超类型方法。 If I remove it, I get an error that the child class must implement the inherited abstract method. 如果删除它,则会收到一个错误,指出子类必须实现继承的抽象方法。 Why won't the below code work, and how can I make it do what I intend? 为什么下面的代码不起作用,如何使它达到预期目的?
BaseClass.java: BaseClass.java:
public abstract class BaseClass
{
...
protected abstract <T extends Inputs> T doStuff(T inputs);
public abstract static class Inputs
{
...
}
}
ChildClass.java: ChildClass.java:
public class ChildClass extends BaseClass
{
...
@Override
protected Inputs doStuff(Inputs inputs)
{
return inputs;
}
public static class Inputs extends BaseClass.Inputs
{
...
}
}
Try and: 尝试并:
public abstract class BaseClass<T extends BaseClass.Inputs>
and: 和:
public class ChildClass extends BaseClass<ChildClass.Inputs>
Which means you need to change doStuff()
so that it returns T (in BaseClass
), without having a declared type variable: 这意味着您需要更改doStuff()
以使其返回T(在BaseClass
),而无需声明类型变量:
public abstract T doStuff(T inputs);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.