java中的接口内的抽象类

时间:2017-12-18 13:58:19

标签: java class interface abstract

我是Java新手并试图实现此代码,但我收到了错误。

B.java

public interface A{

    class B; // !!getting error here

    B f(); // f returns B class

    }

C.java

public class C implements A{


public class B{
  private int a;
  public void print(){
   System.out.println(a);
   }

} // end of implementation of class B

B f(){
   System.out.println("default ");
}

} // end of class C

我做错了什么以及如何在不出错的情况下实现此代码?

1 个答案:

答案 0 :(得分:0)

使用Java-Generics的实现怎么样?

public interface A<T> {
    T f();
}

这样,界面根本不需要包含类定义。您可以在实现(或您想要的其他位置)完全声明该类;

public class C implements A<C.B> {
    public class B {
        private int a;
        public void print(){
            System.out.println(a);
        }
    }

    @Override
    public B f() {
        return new B();
    }
}
相关问题