是否具有类型A的数据字段作为类型B的数据字段(类型B继承自类型A)是否合适?

时间:2018-12-29 01:14:18

标签: java generics

如果用户定义的类继承自Java的ArrayList<E>类,那么将ArrayList<E>类型的数据字段作为数据字段是否合适?解释为什么或为什么不这样做。

2 个答案:

答案 0 :(得分:1)

是的,您可以毫无问题地做到这一点,但是将某些东西用作数据成员与继承类之间是有区别的。 当我们想要更改继承的类的某些功能时,通常会继承,但是如果我们想按原样使用类,则直接使用类的对象。 在这里,您扩展了ArrayList类,因此没有问题,并且您还创建了一个数据成员。 因此,您可以继承继承的方法,并根据需要更改ArrayList类的方法,因此这些新更改将反映在新的数据成员中,但是扩展类是无用的,直到您不重写它的方法或重用它为止。 所以希望我能说清楚。 使用相同的数据成员是没有问题的,但是子类在父类中所做的更改将反映在父类对象中。

答案 1 :(得分:0)

为什么不呢?

class <T> Xxxx extends ArrayList<T>
{
    private ArrayList<T> another;

      Etc.

}

但是通常情况下,成员将使用List接口定义

我会更担心为什么您要扩展ArrayList而不是将其作为成员。