日期:2014-05-20  浏览次数:20772 次

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

------解决方案--------------------
queue只是一个Queue型变量(其实质是个指针),它不包含任何属性和方法。

Queue queue=new LinkedList();的意思是将Queue型变量指向一个LinkedList类型的实例(这个实例包含LinkedList类定义的所有属性及方法)。注:LinkedList类实现了Queue接口意味着Queue接口定义的方法为LinkedList类方法的一个子集。
但由于queue是一个Queue型变量,通过它只能访问Queue接口定义的方法,而不能访问LinkedList类中定义的其它方法,例如:
Java code

        queue.add(new Integer(1));        // 这样使用正确
        //queue.removeFirst();            // 这样使用通不过编译

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