我正在玩仿制药,我发现了一个我无法弄清楚的问题.
请看一下这段代码:
class Operation {
}
class P, R> {
}
class MyResource {
}
class MyO extends Operation {
}
class MyP extends P {
}
abstract class A {
abstract P, R> doIt();
}
class B extends A {
@Override
MyP doIt() {
/*
the compiler is complaining about the above line:
The return type is incompatible with A.doIt()
*/
return null;
}
}
基本上,MyP是P< MyO,MyResource>的子类.而这又是一个子类
P< Operation< MyResource> ;,MyResource>.换句话说,我们在B.doIt中返回A.doIt返回类型的子类.但是,编译器仍在抱怨.
你能帮我理解一下吗?
谢谢.