Java 初始化时,您将超类和子类称为什么?

Java 初始化时,您将超类和子类称为什么?,java,inheritance,subclass,superclass,Java,Inheritance,Subclass,Superclass,在识别超类和子类之外的部分时,什么是List和ArrayList List是引用,ArrayList是类吗 如果它们是相同的,它们会被称为其他东西吗 List<String> list = new ArrayList<String>(); 列表是一个接口。ArrayList就是它的一个实现。两者都不是另一个的超类或子类。此声明包含三个部分: 命名的引用列表 引用列表的编译时静态类型 参考ArrayList的运行时动态类型 无论您如何修改编译时类型,这些片段中的每一个都将

在识别超类和子类之外的部分时,什么是List和ArrayList

List是引用,ArrayList是类吗

如果它们是相同的,它们会被称为其他东西吗

List<String> list = new ArrayList<String>();

列表是一个接口。ArrayList就是它的一个实现。两者都不是另一个的超类或子类。

此声明包含三个部分:

命名的引用列表 引用列表的编译时静态类型 参考ArrayList的运行时动态类型 无论您如何修改编译时类型,这些片段中的每一个都将保留它们的字符

列表是一个接口;ArrayList是该接口的实现。

在第一个示例中,列表是定义对象列表引用类型的接口,ArrayList是实际对象类型的接口实现。 在第二个示例中,对象及其引用的类型都有ArrayList差异:

首先,只能在List对象上调用接口列表的方法。在这里有许多人。 第二,可以在列表对象上调用ArrayList类的方法。 第一种方法的优点:

即使将实现更改为:

ArrayList<String> list = new ArrayList<String>();


您不必更改代码的其余部分。

超级类不需要是接口,它可以是另一个类。您提供的重复链接涉及接口。从概念上讲,它是相同的。List是ArrayList的超级类型。ListList是一个由ArrayList实现的接口,有很多实现。有了这样的结构,您就可以有效地执行所谓的“接口编程”。因此,有一个相关的问题。
List<String> list = new LinkedList<String>();
List<String> list = new Vector<String>();