Interface A {...}
Class B implements A { ...}A a = new A(); wrong
A a = new B(); right

解决方案 »

  1.   

    接口不能实例化成对象。
    接口只是指明一种类型;但是它不能被实例化
    不同的类可以实现同一个接口。当然这些类的实例
    也可以转成接口的类型。<<居然有返回接口的方法,并且他还用接口定义了一个对象。
    可以返回接口的类型。可以定义一个接口的对象,但是不能实例化。
    <<但是在那个系统中,返回的接口居然还调用了接口的方法,我觉得很奇怪,没有任何实现的<<方法,就算调用了他有什么作用呢?
    写的是调用了接口的方法,其实这就是面向对象的多态。
    在运行时它会自己确定自己是那个对象,然后去调用相应的方法。
      

  2.   

    上溯造型,下溯造型的问题。
    作为接口(参数),可以用interface。
      

  3.   

    Interface A {    
    void method1();
    void method2();
    }Class B implements A { ...
    void method1();
    void method2();
    }Interface 是用于限定一个类的形状。
    如果 B 表示具体狗  那接口A 则为一些狗的行为。。比如method1就是狗叫,method2()为狗哭。。
      

  4.   

    当然可以返回接口啦,在面向对象的设计中,最重要的一点就是要面向接口编程,而不是面向接口的实现编程。通过使用接口,他会在运行时自动找到该接口的具体实现。由于接口是部分对象的高度抽象,所以他当然不能被实例化。我们不能实例化一个看不见的东西,比如说你不能实例化“动物”,但你可以实例化一个“狗”对象,因为这才是我们看得见摸得找的东西。可以这样理解:操作接口就相当于操作了他的所有实现类JerKii
      

  5.   

    谢谢各位。由于本人以前主要用C++,刚刚学Java才一星期,在开发系统的时候忽然遇到这个问题。这个问题我无法用C++的经验来解释。真的很感谢大家。好结贴