您的位置:首页 > 其它

声明和实现使用不同类,可调用的方法不一样

2011-05-11 21:46 253 查看
2011/05/11

声明和实现使用不同类,可调用的方法不一样

学习了这么久发现就是没有仔细注意到:声明和实现使用不同类,可调用的方法不一样,一直以来都没有注意到过,要么是声明和实现使用相同类,要么是使用不用的类,但是调用的方法是都有的。

例如1:

Map map = new Hashtable();

Hashtable thMap= new Hashtable();

两个变量的方法只是来自声明时候的类。

这个不明显。

例如2:

LinkedList queue1 = new LinkedList();

queue.offer(4);=>定义

queue.pop();=>定义

Queue queue2 = new LinkedList();

queue.offer(4);=>未定义

queue.pop();=>定义

List queue2 = new LinkedList();

queue.offer(4); =>未定义

queue.pop();=>未定义

而API文档 1.6的

public class LinkedList<E>

extends AbstractSequentialList<E>

implements List<E>, Deque<E>, Cloneable, Serializable

public interface Deque<E>extends Queue<E>

另外:1.61的

public class LinkedList<E>

extends AbstractSequentialList<E>

implements List<E>, Queue<E>, Cloneable, java.io.Serializable

为什么在1.61版本中可以定义为 Deque queue = new LinkedList();呢?

照例说Deque和
LinkedList属于兄弟级别的类啊。

有待解决。也许版本不是对应的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐