当前位置: 首页 > 面试题库 >

循环继承和接口-A类无法实现B类接口,而B类却实现A接口

郜卓君
2023-03-14
问题内容

我有:

public class A implements BListener {
    public interface AListener {}
}

public class B implements AListener {
    public interface BListener {}
}

因此,如果我正确理解循环继承的发生,是因为:

编译器转到 A 并说: “嘿,A实现了BListener,让我们去查找BListener!”

然后,当它尝试找到BListener时,最终到达 B ,它说:

“嘿,B侦听器,A所需的B侦听器在B内!但是等待!B的侦听器需要A!我们去寻找AListener!”

然后到达A,重复一次。我说对了吗?

顺便说一下,这个编译错误发生在我的Android开发中。


问题答案:

可能有助于将其绘制出来。

              >A 
is part of  /     \    inherits
                   V             
   AListener        BListener
           ^
  inherits  \     /    is part of 
               B<

一个可爱的圈子。如果没有其他一个,则无法创建其中一个。

编译器是一只多动症的松鼠,追逐自己的尾巴时会喝咖啡吗?

不,因为松鼠不会停下来(直到咖啡因耗尽)。编译器将对此进行查找,然后放弃。

注意:Eclipse有一个错误,该错误允许进行此设置。



 类似资料:
  • 假设我有下面的代码... 不管类ImplementTwo是同时实现B和A,还是只实现B,它仍然需要在接口A中实现方法A(),因为接口B扩展了接口A。有什么理由显式地这样做吗 而不只是 ?

  • 在定义一个类时往往会使其继承某个父类或者实现某个接口,在扩展中实现这个功能非常方便。下面我先给出PHP语言中的代码。 <?php interface i_myinterface { public function hello(); } class parent_class implements i_myinterface { public function hello()

  • 我有一个父类和子类、和,它们描述了如何购买水果的不同类型。 在篮子里插入购买的特定水果; 计算购买水果的总价值; 计算用于给定类型水果(水果名称)的总金额 为了与其他项目的类兼容,在各个类中使用的执行要支付金额的计算的方法将具有名称payFruit,返回类型double并且没有参数。此方法必须在接口中声明。 注意:我知道这可能对我的情况很特殊,对其他人没有太大帮助,但我发现这个类层次结构在使用时有

  • 本文向大家介绍给两个构造函数A和B,如何实现A继承B?相关面试题,主要包含被问及给两个构造函数A和B,如何实现A继承B?时的应答技巧和注意事项,需要的朋友参考一下 参考回答: // 再在A的构造函数里new B(props);  

  • 问题内容: 我有以下界面: 我在下面有抽象类(没有提到方法插入): 我有具体的课程: 最后,SpecificEntryBean定义为: 我有以下错误: 类型SpecificEntry必须实现继承的抽象方法SingleRecordInterface.insert(AbstractEntryBean) 考虑到SpecificEntryBean扩展了AbstractEntryBean,所以我不明白此错误

  • 但是,我也看到了一种奇怪的方法来重写接口方法: 3.子类只实现接口,但由父类重写接口中的方法: 覆盖接口方法的第三种方法在android框架源代码中非常常见,例如: 这样设计的原因是什么?