java中用接口声明对象用具体的子类创建该实例,比如:Queue queue=new LinkedList();请问queue中的方法是不是即有Queue的又有LinkedList的???

解决方案 »

  1.   

    个人感觉确切地说是有linkedList的方法,linkedList实现了queue接口,所以linkedList已经拥有了queue的方法,这儿有一个大小包含的问题。LZ那样理解感觉也可以
      

  2.   

    queue 只是一个地址指针,本身并没有得到赋值,所以,它没有任何方法,而 子类的实例的指针被包含在父类接口的queue指针内, 所以,不存在所谓的覆盖和内容。 楼上解释错误。
      

  3.   

    queue只是一个Queue型变量(其实质是个指针),它不包含任何属性和方法。Queue queue=new LinkedList();的意思是将Queue型变量指向一个LinkedList类型的实例(这个实例包含LinkedList类定义的所有属性及方法)。注:LinkedList类实现了Queue接口意味着Queue接口定义的方法为LinkedList类方法的一个子集。
    但由于queue是一个Queue型变量,通过它只能访问Queue接口定义的方法,而不能访问LinkedList类中定义的其它方法,例如: queue.add(new Integer(1)); // 这样使用正确
    //queue.removeFirst(); // 这样使用通不过编译如果想通过queue访问LinkedList定义的其它方法须经过强制类型转换(因为queue指向的实际上是LinkedList实例): ((LinkedList)queue).removeFirst();
      

  4.   


    肯定不是啦,queue当然只有Queue的方法了,因为编译器只能知道queue是个Queue类型的。但是他并不知道他具体是什么东西。如果你调用的东西超过了Queue的范围,那么编译器当然就会报错了
      

  5.   

    学习java要明白java多态的特性,知道向上转型和向下转型的区别和联系
      

  6.   

    既然是接口 当然queue中就会有Queue 的方法