当前位置: 首页 > 面试题库 >

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

赵嘉悦
2023-03-14
问题内容

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

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

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

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


问题答案:

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

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

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

所以你不用。



 类似资料:
  • 问题内容: 我的意思是: 我用谷歌搜索,发现了这个: 表示定义接口方法的实现。但是接口没有实现,因此是不可能的。 但是,interface是100%抽象的类,抽象类可以实现接口(100%抽象的类)而无需实现其方法。将其定义为“接口”时会出现什么问题? 详细来说, 问题答案: 表示实现,当旨在声明仅提供不提供实现时。 A 100%,是功能上等同于,但它也可以实现,如果你想(在这种情况下,它不会保持1

  • 问题内容: 在Java中,当接口扩展另一个接口时: 为什么要实现其方法? 当接口不能包含方法主体时,如何实现其方法 当扩展另一个接口而不实现它时,如何实现这些方法? 接口实现另一个接口的目的是什么? 这是Java的主要概念! 编辑: 在eclipse中,除了中的实现方法之外,还有实现符号。 当我将鼠标悬停在它上面时,它表示它实现了该方法!!! 问题答案: 为什么要实现其方法?当接口不能包含方法主体

  • 本文向大家介绍接口可以在Java中扩展多个接口吗?,包括了接口可以在Java中扩展多个接口吗?的使用技巧和注意事项,需要的朋友参考一下 是的,我们可以做到。一个接口可以扩展Java中的多个接口。 例: 输出:

  • 问题内容: 我和一个朋友正在学习Java。今天,我们正在研究接口,并且讨论了如何使用接口。 我的朋友向我展示的示例代码包含以下内容: 其中 IVehicle 的是,公司在汽车和自行车两个类实现的接口。定义接受 IVehicle 作为参数的方法时,可以使用接口方法,并且在运行代码时,上述对象可以正常工作。但是,这在声明汽车和自行车时非常正常,就像通常这样: 因此,我的问题是-在声明和实例化 mode

  • 如何在Java中检查接口是否扩展了另一个接口?我试过这个: 检查超类是否不工作(接口不是类)谢谢

  • 或者特别是:两者之间的区别是什么 和 它会以任何方式影响实现类吗?