Java,我可以假定具有层次结构的接口

时间:2019-04-22 22:51:10

标签: java interface

类似于您如何向下推层次结构链(假设),我希望对接口进行类似的操作。

有一个父类“ A”和一堆子类“ A”。但是,我正在处理的所有子类的子集都实现了某些接口。 但是,并不是所有的子班都可以,只是我碰巧的班。

所以方法签名看起来像这样:

public void action(A a) {
}

因此,该方法可以对任何类型为“ A”或它的子级的东西执行某些操作,但是,我唯一感兴趣的都是实现同一接口。

因此,我想要一种能够假定(或强制转换?)接口的方法,以便我可以调用接口方法之一。

类似这样:

public void action(A a) {
    ((B) a).methodFromB(); // ((Interface) a).methodFromInterface();
}

但是,相反,它将是一个接口,我知道我正在使用的工具的具体对象。

1 个答案:

答案 0 :(得分:0)

感谢Andy Thomas,事实证明您可以将其转换为接口类型。

((InterfaceName) objectThatImplInterface).methodFromInterface();