在一个帖子上看到的.我把示例代码写一下,可能有错误,但就是个意思MyInterface.java
--------------------------------
public interface MyInterface {
   public void Test();
}TestA.java
--------------------------------
package com.a
public class TestA implements MyInterface {
  public void Test() {
  //...
  }
}TestB.java
--------------------------------
package com.b
public class TestB implements MyInterface {
  public void Test() {
  //...
  }
}现在的问题就是如果让子包实现根下的接口,可我觉得实现不了,但是那个帖子说是可以的.
请问各位到底能不能引用,如果能;如何实现其对接口的实现?

解决方案 »

  1.   

    偶英文比较烂, 在JLS上没翻到~~O_o!
      

  2.   

    要在别的类里实现或引用接口,那必须在类里有接口的import导入声明(或者在classpath里设了类路径)除非在同一个包里,不然编译会报错!
      

  3.   

    接口本来就是跨包的。
    既然接口没有加package,那么一定要在classpath里设置上,才能找的到,被别人实现。
      

  4.   

    我觉得至少你在代码中应该加上
    import MyInterface;不在一个包下是必须这么干的;我想你的问题也应该是从这里引发的吧
      

  5.   

    楼主说的是 default package 吧?最好不要在那个地方做 interface 或者 class。也不用管为什么,别在那里做就是了,用一个 package 不是很好吗?
      

  6.   

    default package要设置一下classpath,你可以看一下IDE里面生成的classpath
      

  7.   

    接口的可见域修饰符有2种,public和默认(不加任何关键字)。如果接口的修饰符是public,那么在任何包下的类,都可以实现该接口。
    如果接口的修饰符没有,那么只能在和该接口在同一包下的类,可以实现该接口。
      

  8.   

    JAVA群,欢迎大家加入讨论!QQ群8595489