方法返回更改扩展名

时间:2012-04-22 11:25:11

标签: java oop

我有一个类ClassA,其中包含一些返回项目的方法:

class ClassA {
    ClassA item(...) {...}
    Vector<ClassA> list(...) {...}
}

这些方法处理输入并动态生成这些项目。现在想象我扩展这个类:

class ClassB extends ClassA {
    ...
}

在任何情况下我都不会覆盖item()或list()方法,但是我希望它们返回一个ClassB项(或向量),而不会在返回时进行转换(这是我当前的解决方案)现在)。有没有办法这样做?提前谢谢。

1 个答案:

答案 0 :(得分:3)

我会创建一个第三类(ClassC)来保存你的ClassA或ClassB项,这些项使用如下泛型类型进行参数化:

class ClassC<T extends ClassA> {
    T item(...) {...}
    Vector<T> list(...) {...}
}

现在,您可以使用ClassA或ClassB类型实例化ClassC,而不必担心类转换。