初始化时你称之为超类和子类?

时间:2016-02-01 16:07:56

标签: java inheritance subclass superclass

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

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

List是引用而ArrayList是类吗?

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

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

4 个答案:

答案 0 :(得分:1)

List是一个界面。 ArrayList是它的一个实现。它们都不是另一个的超类或子类。

答案 1 :(得分:1)

本声明分为三部分:

  1. 命名参考(list
  2. 编译时,引用的静态类型(List<String>
  3. 参考的动态类型(ArrayList<String>
  4. 无论您如何修改编译时类型,每个部分都会保留其角色。

    List是一个界面; ArrayList是该接口的实现。

答案 2 :(得分:0)

在第一个示例中,List是定义对象list的引用类型的接口,ArrayList是接口的实现,它是实际对象的类型。 在第二个示例中,对象及其引用都具有类型ArrayList

答案 3 :(得分:0)

差异:

  • 第一个,只能在列表对象上调用接口List的方法。多态性存在于此。
  • 第二个,可以在列表对象上调用ArrayList类的方法。

第一个的优点:

即使您将实施更改为:

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

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

你不能改变你的代码。