我在阅读 Java 文档时遇到了一个奇怪的案例。这是 Oracle 的关于 Arrays.asList 方法的 java 文档的链接,http://docs.oracle.com/javase/7/docs/api/java/util/Arrays.html#asList(T...)
文档中有一个示例
List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");
我的问题是,由于 List 是一个接口,为什么我们可以将 stooges 声明为“List”,而不是实现 List 的具体子类(例如 ArrayList 或 LinkedList)?那么这是否意味着我们可以有一个接口类型的引用变量呢?对我来说这看起来很奇怪,因为我一直认为接口只代表多态性,我们永远不应该真正使用接口类型变量。
谁能给我一些线索?