在Java中,当一个接口扩展另一个接口时,为什么要在子接口中重新声明一个方法?

我一直在研究J2EE的JMS

API,发现了一个奇怪的行为,其中在接口(例如Session中的createQueue)中声明的某些方法在诸如QueueSession之类的子接口中再次声明,并且具有相同的文档。

因为子接口“继承”了它继承的接口的所有方法声明,并且由于JavaDoc工具没有问题,所以可以对子接口的JavaDoc进行排序并创建“继承的操作”列表,因此我无法弄清楚这将实现什么。

唯一想到的是,最初的调用是在Session中进行的,然后在创建特定的子类时移至QueueSession,尽管那时我希望可以在上层类的文档中看到一些内容。但这只是推测。

因此问题是:是否有令人信服的理由在子接口中重新声明方法?

回答:

在为Sun工作时偶尔会发生这种情况,我可以告诉您它通常如何发生。有人用一些方法定义了一个接口,比方说爱丽丝。许多开发人员都实现了该接口。

一段时间后,人们意识到他们还需要其他接口(称为Bob),该接口具有Alice方法的子集,以使其能够用作 另一个 接口Clara 的基础接口。

如果将Alice的方法移到Bob中,则会破坏实现Alice的所有代码;您必须返回并至少重新编译一堆代码,其中一些您可能不拥有,并且出于政治原因也无法破解。

所以你不用。

以上是 在Java中,当一个接口扩展另一个接口时,为什么要在子接口中重新声明一个方法? 的全部内容, 来源链接: utcz.com/qa/405820.html

回到顶部