首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java List与ArrayList

Java List与ArrayList
EN

Stack Overflow用户
提问于 2012-02-16 17:59:05
回答 7查看 7.9K关注 0票数 9

作为一个C++老手,我已经设法解决了我的问题,但是我不能理解下面的C++机制:

代码语言:javascript
复制
Vector<Object> x = new Vector<Object>();        // OK
ArrayList<Object> y = new ArrayList<Object>();  // OK
List<Object> zzz = new ArrayList<Object>();     // OK solves problem below but question remains
List<Object> z = new List<Object>();            // WHY? Compiler error: Cannot instantiate 
EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2012-02-16 18:00:38

List是一个接口,有点像C++中带有一些= 0方法的类。你不能实例化它。

但是ArrayList<T>“继承”了List<T> (或者用Java语言来说,是实现了它),所以这些引用是与赋值兼容的。

票数 15
EN

Stack Overflow用户

发布于 2012-02-16 18:00:58

List是一个接口,无法对其进行初始化。ArrayList实现了List,因此您可以将ArrayList实例赋给List变量。

票数 5
EN

Stack Overflow用户

发布于 2012-02-16 18:08:32

是。因为List是一个接口,而在Java中你不能实例化一个接口。您只能实例化一个类。

ArrayList是一个实现List<>的类,这就是为什么你可以实例化它。:)

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9309093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档