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