Java-使用相同的方法和不同的返回类型实现多个接口

Java-使用相同的方法和不同的返回类型实现多个接口,第1张

Java-使用相同的方法和不同的返回类型实现多个接口

对于Java
1.5之前的版本,会出现此错误消息(至少在Eclipse中将遵从级别设置为1.4时,我可以重现该错误)。换句话说,请确保您正在查看足够早的规格。

在Java> = 1.5上,以下命令可以正常编译。

interface A {    public A another();}interface B {    public B another();}interface AB extends A,B {    public AB another();}

如您所说,由于

AB
既是
A
B
,也满足两个接口。


以下是Java语言规范(第二版,即Java 1.4)的引文:

9.2接口成员

接口的成员是:

  • 这些成员在接口中声明。
  • 这些 成员是从直接超级接口继承的
  • 如果接口没有直接的超级接口,则[…]

因此,如果接口 声明的方法具有相同的签名和不同的返回类型 或不兼容的throws子句,则将导致编译时错误。

此外, 当前 规范还表示以下内容:

9.4.2重载

如果接口的两种方法(都是在同一个接口中声明的,或者都是由一个接口继承的,或者一个声明且是一个继承的)的名称相同,但签名不同,那么它们不是等效的(第8.4.2节),则方法名称被认为是重载的。这个事实不会造成任何困难,并且它本身也不会导致编译时错误。返回类型之间或名称相同但签名不相同的两个方法的throws子句之间没有必需的关系。



欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/5475783.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-12-12
下一篇2022-12-12

发表评论

登录后才能评论

评论列表(0条)

    保存