Java 将类型a的数据字段用作类型B的数据字段是否合适(类型B从类型a继承而来)?

Java 将类型a的数据字段用作类型B的数据字段是否合适(类型B从类型a继承而来)?,java,generics,Java,Generics,如果用户定义的类继承自Java的ArrayList类,那么将ArrayList类型的数据字段作为数据字段是否合适?解释原因或原因。为什么不 class <T> Xxxx extends ArrayList<T> { private ArrayList<T> another; Etc. } 类Xxxx扩展了ArrayList { 私人ArrayList另一个; 等 } 但通常情况下,会使用接口列表定义成员 我更关心的是,为什么您要扩展

如果用户定义的类继承自Java的
ArrayList
类,那么将
ArrayList
类型的数据字段作为数据字段是否合适?解释原因或原因。

为什么不

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

      Etc.

}
类Xxxx扩展了ArrayList { 私人ArrayList另一个; 等 } 但通常情况下,会使用接口列表定义成员


我更关心的是,为什么您要扩展ArrayList而不是将其作为一个成员。

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

可能相关:除非您演示尝试,否则在此处张贴作业没有帮助。创建一个接口。您所说的“将
ArrayList
类型的数据字段作为数据字段”是什么意思?为什么不合适呢?