如何在Java中的抽象类中强制实现嵌套抽象类?

1 java nested class abstract

我是Java的新手,但习惯于OOP编程.有没有办法可以强制实现嵌套到另一个抽象类中的抽象类,如下面的代码所示:

public abstract class A
{

    public abstract class B extends C
    {
        @Override
        public abstract void foo();

    }

}
Run Code Online (Sandbox Code Playgroud)

我希望B能够在A的每个子类中实现.有可能吗?

谢谢您的帮助,

Joh*_*n B 6

如果我正确地读了你的问题,你希望A的每个子类包含B的子类,那么就没有直接的方法可以做到这一点.但是,您可以执行以下操作:

public abstract class A
{

  public abstract class B extends C
  {
      @Override
      public abstract void foo();
   }

   protected abstract B getBInstance();
}
Run Code Online (Sandbox Code Playgroud)

因为这会强制A的子类返回B的实例,所以它们必须能够访问B的某个子类.

但是,你应该问自己为什么A应该关心它实现B的子类,除非A以某种方式使用B来满足上述要求.