dan*_*ymo 4 java generics inheritance class
我想知道如何(如果可能)创建一个类,即通用类的特定类型。
具体来说,我已经实现abstract class Stack<Type>了所有必要的方法,我希望有一段class StackInteger时间的实例StackInteger也是Stack<Integer>.
我看到我可以做这样的事情:
class StackInteger {
Stack<Integer> s;
public StackInteger(int size) {
s = new Stack<Integer>(size);
}
}
Run Code Online (Sandbox Code Playgroud)
然后实现所有要包含的Stack方法,s.method();但我想知道从Stack扩展时是否可以轻松完成。
是的,在这种情况下,继承是比组合更好的解决方案,因为 aStackInteger是 a Stack。
只需Integer在extends子句中作为类型参数提供。
class StackInteger extends Stack<Integer>
Run Code Online (Sandbox Code Playgroud)
但是,如果您不提供除Stack已有功能之外的任何其他功能,那么该类就没用了,您不妨直接使用Stack<Integer>.