为什么会出现以下情况:
说
注意:我的问题不是为什么
public class one{
public <T extends Foo> Bar<Foo> function1() {}
public Bar<Foo> function2(){}
}
public class two<F extends Foo> extends one{
public Bar<F> function1(){} //Doesn't throw an error
public Bar<F> function2(){} //Throws an error
}
说
<T extends Foo>
,我是不是在说Foo可以被超类型覆盖?注意:我的问题不是为什么
function2()
会抛出错误...而是为什么function1()
不会抛出错误。
public <T extends Foo> Bar<Foo> function1() {}
这段代码能编译吗?我不知道那个返回类型是什么。 - Cruncher<T extends Foo> Bar<Foo>
。 - Cruncherone
设计成泛型并继承one<T>
而不只是one
。像 奇妙的递归模板模式 这样的东西。 - emesx