java中的抽象类接口[关闭]

问题描述 投票:1回答:1

我是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

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

java class interface abstract
1个回答
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();
    }
}
© www.soinside.com 2019 - 2024. All rights reserved.