【问题标题】:Interface implementing another interface in android developer reference docs在 android 开发者参考文档中实现另一个接口的接口
【发布时间】:2019-09-08 00:36:13
【问题描述】:

可能是我缺少一些理解,或者可能是我无法理解一些“措辞”(我对 JAVA 和 android 还很陌生),但是如果您查看 android 的开发人员参考文档,就会发现接口是“实现”另一个接口。例如,除其他外,请查看 ComponentCallbacks2SurfaceHolder.Callback2。但是,根据SO post接口不能实现另一个接口,它只能扩展一个那么,android 参考文档中发生了什么? android 参考文档中不应该使用关键字“extends”,而不是“implements”接口之间的关系?

另外,假设一个接口interfaceB 实现了另一个接口interfaceA 和一个类,比如说ClassXYZ,实现了interfaceB。在参考文档中声明类时,有时会提到:

public class ClassXYZ implements interfaceB 

(例如declaration of Activity中提到了Activity class implements ComponentCallbacks2但是没有提到Activity实现了ComponentCallbacks,即使ComponentCallbacks2“实现了”组件回调2)

有时是

public class ClassXYZ implements interfaceB, interfaceA

(例如declaration of AlteredCharSequence中提到了AlteredCharSequence类实现了CharacterSequence,并且提到了AlteredCharSequence即使GetChars "implements" CharSequence也实现了GetChars)

这两个声明有什么区别?这两种情况下的类继承图是怎样的?

【问题讨论】:

  • 我认为 android 文档只是使用了错误的术语。 ComponentCallbacks2 扩展 ComponentCallbacks。接口不是实现。见some source
  • @khelwood 谢谢,你能回答问题的第二部分吗? (以“还说”开头的那个)

标签: java android


【解决方案1】:

我认为 android 文档只是使用了错误的术语。 ComponentCallbacks2 扩展 ComponentCallbacks。接口不是实现。见some source

至于其余部分,如果接口B 扩展接口A,那么B 的任何实现也是A 的实现,即使文档没有这样描述它。因此,任何实现ComponentCallbacks2 的类都实现了ComponentCallbacks,无论文档是否提及。

【讨论】:

  • 可以,但是实现B的类的类声明中是否应该提到父接口?
  • 类声明中无需提及。如果它有助于读者理解课程的目的,提及它也没有什么坏处。
  • 所以,假设一个 C 类实现了 B(它扩展了 A)。那么以下两个都是正确的吗?:1)C类实现B 2)C类实现B,A
猜你喜欢
  • 1970-01-01
  • 2022-08-02
  • 1970-01-01
  • 2019-07-09
  • 2014-09-16
  • 1970-01-01
  • 2021-11-01
  • 2016-04-28
  • 2022-11-28
相关资源
最近更新 更多