作为一个C++老手,我已经设法解决了我的问题,但是我不能理解下面的C++机制:
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 发布于 2012-02-16 18:00:38
List是一个接口,有点像C++中带有一些= 0方法的类。你不能实例化它。
但是ArrayList<T>“继承”了List<T> (或者用Java语言来说,是实现了它),所以这些引用是与赋值兼容的。
发布于 2012-02-16 18:00:58
List是一个接口,无法对其进行初始化。ArrayList实现了List,因此您可以将ArrayList实例赋给List变量。
发布于 2012-02-16 18:08:32
是。因为List是一个接口,而在Java中你不能实例化一个接口。您只能实例化一个类。
ArrayList是一个实现List<>的类,这就是为什么你可以实例化它。:)
https://stackoverflow.com/questions/9309093
复制相似问题