我是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的每个子类中实现.有可能吗?
谢谢您的帮助,
如果我正确地读了你的问题,你希望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来满足上述要求.
| 归档时间: |
|
| 查看次数: |
1586 次 |
| 最近记录: |