【问题标题】:Method Overriding with classes and interfaces使用类和接口覆盖方法
【发布时间】:2018-04-17 13:55:34
【问题描述】:

如果类 A 和接口 I 具有相同签名的方法,当类 B 扩展类 A、实现接口 I 并提供与 A 和 I 相同签名的方法时,哪个方法会被覆盖? PS我检查了不同的地方,但没有提到如果该方法也在子类中被覆盖会发生什么,即它覆盖了哪个方法

【问题讨论】:

  • 你试过了吗?
  • 喜欢测试了吗?
  • 如果你测试它,你会发现c;
  • 如果是的话,但我想不出一种方法来确定它是接口方法还是它覆盖的超类方法
  • 如果您能帮我解决这个问题,我将不胜感激

标签: java class interface


【解决方案1】:

它覆盖了A类的方法。
接口的方法是被实现的,而不是被覆盖的。

【讨论】:

  • 接口方法上的@Override 注解可能有点混乱。
  • 我明白这一点,请原谅我滥用术语。所以你是说它不是发生的抽象方法的实现,而是超类方法的覆盖?
  • 类A实现了接口I的方法。类B重写了类A的方法,同时实现了接口I的方法。
【解决方案2】:

B 类扩展 A ; 然后,与类 A 具有相同方法签名的方法类 B 被覆盖。

当 B 类实现 I 时; 接口中声明的方法必须在类 B 中实现。

【讨论】:

    猜你喜欢
    • 2013-11-14
    • 2012-07-11
    • 2014-10-23
    • 2014-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-20
    • 1970-01-01
    相关资源
    最近更新 更多