【发布时间】:2019-09-08 00:36:13
【问题描述】:
可能是我缺少一些理解,或者可能是我无法理解一些“措辞”(我对 JAVA 和 android 还很陌生),但是如果您查看 android 的开发人员参考文档,就会发现接口是“实现”另一个接口。例如,除其他外,请查看 ComponentCallbacks2 和 SurfaceHolder.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 谢谢,你能回答问题的第二部分吗? (以“还说”开头的那个)