在以下声明中:
Queue<Integer> queue1= new LinkedList<Integer>();
这是否意味着queue1将是一个作为一个LinkedList的队列或一个充当队列的linkedList?
我不确定收藏品,特别是当它们被宣布为收藏品时。
答案 0 :(得分:0)
Queue
是一个不是类的接口。
LinkedList
是Queue
接口的实现。
你可以这样认为。
Animal a = new Cat()
Animal b = new Dog()
Animal c = new Cow()
a,b和c都是动物。但它们都是不同类型的动物。
还有其他一些Queue接口的实现,如ArrayBlockingQueue和PriorityQueue。它们都实现了Queue接口,但在内部做了不同的事情。 http://docs.oracle.com/javase/7/docs/api/java/util/Queue.html http://docs.oracle.com/javase/7/docs/api/java/util/LinkedList.html
你可以这样想。 动物a =新猫() 动物b =新狗() 动物c =新牛()
答案 1 :(得分:0)
Parent name = new Child();
这指的是
name是一个Child,但我们可以多态地使用Parent引用。
在您的示例中,Queue是一个接口,LinkedList是Queue的子类。这是一个很好的编程习惯。 (Program to an interface, not an implementation)
答案 2 :(得分:0)
queue1
LinkedList
充当Queue
。
queue1
是LinkedList
。毕竟,那是被调用的构造函数。 LinkedList
类还实现了List
和Deque
,但由于您已将其声明为Queue
,因此该接口提供的方法将是唯一可用的方法。你没有演员,所以它通常会充当Queue
。