我想要的实际上是这样的:
public class Foo<T> {
// ...
}
public class Foo<T, S> {
// ...
}
请注意,类的名称相同,但类型列表的长度不同。上面的代码在Java中不起作用,但我希望它能显示我的意图。是否有可能在Java中做类似的事情?
示例:
public class Foo<T> {
public Integer call(T input) {
// ...
}
}
public class Foo<T, S> {
public S call(T input) {
// ...
}
}
答案 0 :(得分:1)
您不会覆盖类,而是覆盖方法。类可能是子类。
这是可能的:
public class Zoo<T, S, U> extends Foo<T>
{
// ...
}
答案 1 :(得分:1)
我想这就是你要做的事情:
班级foo1.Foo:
package foo1;
public class Foo<T, S> {
public S call(T input) {
// ...
}
}
班级foo2.Foo:
package foo2;
public class Foo<T> extends foo1.Foo<T, Integer> {
public Integer call(T input) {
// ...
}
}
答案 2 :(得分:0)
当您将课程定义为
时 public class Foo<T> {
// ...
}
从技术上讲,我们告诉编译器将Generic替换为Object,因为T是无界的。
当我们将类定义为
时public class Foo<T, S> {
// ...}
编译器不知道如何解决这个问题。