gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 03:32:17 26 4
gpt4 key购买 nike

我一直在查看来自 J2EE 的 JMS API,并发现了一个奇怪的行为,即在接口(interface)中声明的某些方法(例如,Session 中的 createQueue)在 QueueSession 等子接口(interface)中再次声明,并且具有相同的文档。

由于子接口(interface)“继承”了它继承的接口(interface)的所有方法声明,并且由于 JavaDoc 工具可以毫无问题地整理子接口(interface)的 JavaDoc 并创建“继承的操作”列表,所以我无法弄清楚是什么这样就实现了。

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

所以问题是:在子接口(interface)中重新声明方法是否有令人信服的理由?

最佳答案

在为 Sun 工作时,我曾见过这种情况,我可以告诉您这种情况通常是如何发生的。有人用一些方法定义了一个接口(interface),比方说 Alice;许多开发人员实现了该接口(interface)。

一段时间后,他们意识到他们需要一些其他接口(interface),称之为 Bob,它具有 Alice 方法的子集,以便允许它作为另一个的基础接口(interface)界面,克拉拉。

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

所以你没有。

关于java - 在 Java 中,当一个接口(interface)扩展另一个接口(interface)时,为什么要在子接口(interface)中重新声明一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/563952/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com