这是典型的运行时确定类型问题,使用这种结构充分体现了多态性的优点(如同Java中的Collection)。程序运行时会自动去判定此类的实际类型,然后调用相应的类的方法。

解决方案 »

  1.   

    你使用interface就是定义了,接口,具体的实现就留给了implement这个interface的class了。其实,interface是不能实例化的,所有它method是不能被调用的。不过,oo有一个重要的地方就是多态了,你可以使用upcase的方式了,就是这样:
    interfaceName t = new className1();
    这个时候,你通过t.methodName();其实访问的是className1的methodName()的。这个就是所谓的动态绑定了。
      

  2.   

    你根本不能调用interfaceName.methodName
    你只能实例一个类,比如interfaceName class = new className2();
                           clss.methodName()
    自己也应该看的出来,调用的是 className2的方法吧...
      

  3.   

    看看《think in java》,会理解的。
      

  4.   

    zjcxx(云啸) :
        你有这本书的电子版吗?能否发一份给我?[email protected]
      

  5.   

    上面已经说得很清楚了,interface是不能实例化的,但是可以这样用:interfaceName t = new className1();或interfaceName t = new className2();
    它们分别访问的是className1的methodName()和className2的methodName()