是否有可能在Java中实现派生类中的接口?

m_p*_*tor 2 java oop

让我们有以下类层次结构:

public class ParentClass implements SomeInterface {
}

public class ChildClass extends ParentClass {
}
Run Code Online (Sandbox Code Playgroud)

然后让我们有这两个实例:

ParentClass parent;
ChildClass child;
Run Code Online (Sandbox Code Playgroud)

然后我们有以下TRUE语句

(parent instanceof SomeInterface) == true
(child instanceof SomeInterface) == true
Run Code Online (Sandbox Code Playgroud)

是否有可能在ChildClass中实现SomeInterface,所以当我们检查instanceof运算符时它返回false?

如果不可能,是否有解决方法?

use*_*205 18

不,这是不可能的,你这样做的意图是一个很好的暗示,你的班级层次结构中存在某些缺陷.

解决方法:更改类层次结构,例如.像这样:

interface SomeInterface {}
abstract class AbstractParentClass {}
class ParentClass extends AbstractParentClass implements SomeInterface {}
class ChildClass extends AbstractParentClass {}
Run Code Online (Sandbox Code Playgroud)


Ore*_*ost 7

也许组合而不是继承是你想要的,即有一个"基类"对象作为成员,只需实现你需要的接口,转发成员所需的任何方法.