如何扩展泛型类?

时间:2014-07-24 15:26:03

标签: java generics

我想让一个类在这样的几个类中扩展另一个类:

class Special extends < Class1<type1> , Class2<Type2>> {
  // ToDo
}

我尝试过类似的事情:

 class Special<T1, T2, T3, T4> extends < T1<T2> , T3<T4>> {
      // ToDo
    }

当然语法不能编译。我怎么能这样做?


编辑1

我们在这里要清楚:我不想要多重继承。我希望我的课程能够扩展一个超级课程,而另一个超级课程。为此,我问是否有可能使用泛型。

可以使用泛型来处理这个特殊的数组映射:

class MapArray<T_KEY, T_VALUE> extends LinkedHashMap<T_KEY, ArrayList<T_VALUE>> {

}

此代码可以让用户为T_KEY和T_VALUE添加任何类型。 我想知道是否可以在类中使用泛型。

更简单地说,我想这样做:

class Special extends < Either_this_class, Either_this_one > {

}

2 个答案:

答案 0 :(得分:0)

你可以这样做(保持Java语法的极限):

class SubAndImp extends Super implements Interface {
}

class ImpAndImp implements InterOne, InterTwo {
}

所有或部分扩展和实现的类型都可以是通用的:

class SubAndImp<X,Y> extends Super<X> implements Interface<Y> {
}

class ImpAndImp<X,Y> implements InterOne<X>, InterTwo<Y> {
}

通过实例化一个通用参数,你的子类也可以不再是通用的:

class SubAndImp extends Super<Integer> implements Interface<String> {
}

答案 1 :(得分:0)

Java仅支持多个接口继承。所以你不能扩展多个类,但你可以实现任意数量的接口。