首页 > 解决方案 > LinkedLists 的接口编程

问题描述

我最近被指出了这个问题(“编程到接口”是什么意思?)并想得到一些澄清。

LinkedList<Integer> test1 = new LinkedList<Integer>(); 
List<Integer> test2 = new LinkedList<Integer>(); 

根据我的阅读,第一个 LinkedList/List 决定了可以使用哪些方法。所以对于 test1,你可以做 test1.peek() 而你不能做 test2。那是因为对于 test2,您正在创建一个 LinkedList 但要实现 List 接口的方法?换句话说,对于 test2,您已经创建了一个带有 prev 和 next 节点的 LinkedList,但是选择实现 List 接口中列出的方法?

猜猜我有点困惑,因为我认为LinkedList是一个实现List接口的类,但是对于test2,我们正在创建一个LinkedList并再次实现一个List?

标签: javainterface

解决方案


LinkedList 实现 List;List 没有实现 LinkedList。

peek是 a 的方法LinkedList,但不是 的方法List

由于这种情况,test2.peek()是编译时错误。

具体来说,test2 只公开了 List 的功能。


推荐阅读