【发布时间】:2009-05-18 12:53:58
【问题描述】:
在 Ken Arnold、James Gosling、David Holmes 撰写的“THE Java™ 编程语言,第四版”中,提到:
段落:(4.3.2) “同样,如果一个接口继承了多个具有相同签名的方法,或者如果一个类实现了包含具有相同签名的方法的不同接口,则只有一个这样的方法。该方法的实现最终定义为实现接口的类,并且没有歧义。如果方法具有相同的签名但返回类型不同,则返回类型必须是所有其他类型的子类型,否则会发生编译时错误。必须定义一个返回该公共子类型的方法。”
谁能给我一些示例代码来证明上述段落的观点?
我尝试编写代码并测试提到的内容,但出现编译时错误 子接口隐藏了基接口方法,所以只能实现子接口方法。
提前致谢。 -阿伦
【问题讨论】:
-
张贴你的代码和你的编译器错误老兄......至少给我们一些东西来(a)重现这个问题; (b) 从那里开始。
-
大家真的很抱歉 - 我试图使用 j2sdk1.4.2_08 测试上面提到的段落中提到的内容 - 我没有意识到这本书是为 JDK1.5 编写的所以这意味着如果您使用 JDK1.4 由“Daniel Schneller”编译代码 sn-p,您将得到“ImplementationOfAandB.java:17: methodB() in ImplementationOfAandB cannot implement methodB() in InterfaceA;尝试使用不兼容的返回类型”编译错误而JDK1.5运行良好。
标签: java interface overriding overloading