可能是我缺少一些理解,或者可能是我无法理解一些"措辞"(我对Java和Android是相当新的),但是如果你看Android的开发参考文档,那么你可以发现一个接口是"实现"另一个接口。例如,在其他示例中,查看componentcallback2&surfaceholder.callback2。但是,根据一个so post,一个接口不能实现另一个接口,它只能扩展一个。那么,Android参考文档中发生了什么?在Android参考文档中不应该使用关键字"extends",而不是在接口之间的关系中使用"implements"?
另外,假设一个接口interfaceB实现另一个接口interfaceA和一个类(比如ClassXYZ实现interfaceB。在引用文档中声明类时,有时会提到:
public class ClassXYZ implements interfaceB
(例如,在活动的声明中,提到了Activity class implements ComponentCallbacks2,但没有提到活动实现了componentcallbacks,即使componentcallback2"实现"componentcallback2)
有时
public class ClassXYZ implements interfaceB, interfaceA
号
(例如,在alteredcharsequence的声明中,提到alteredcharsequence类实现characterSequence,并且提到alteredcharsequence实现getchars,即使getchars"实现"charsequence)
这两个声明有什么区别?在这两种情况下,类继承关系图看起来如何?
我认为Android文档只是使用了错误的术语。ComponentCallbacks2扩展ComponentCallbacks。接口不是实现。查看一些来源。
@谢谢,你能回答问题的第二部分吗?(以"也说"开头的那个)
我认为Android文档只是使用了错误的术语。ComponentCallbacks2扩展ComponentCallbacks。接口不是实现。查看一些来源。
至于其他方面,如果接口B扩展接口A,那么任何B的实现也是A的实现,即使文档没有这样描述。因此,任何实现ComponentCallbacks2的类都会实现ComponentCallbacks,不管文档是否提到它。
是的,但是在实现B的类的类声明中应该提到父接口吗?
没有必要在类声明中提到它。如果它能帮助读者理解课堂的目的,那么提到它也没有什么坏处。
所以,假设类C实现了B(扩展了A)。那么以下两个都是正确的吗?:1)C类实现B 2)C类实现B、A
对。两者都是正确的和等效的。