循环继承和接口 - 当B类实现A接口时,A类不能实现B类接口

Not*_*iel 5 java inheritance android interface implements

我有:

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

public class B implements AListener {
    public interface BListener {}
}
Run Code Online (Sandbox Code Playgroud)

所以,如果我理解正确,循环继承发生的原因是:

编译器转到A并说"嘿,A实现BListener,让我们去找BListener!"

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

"嘿,BListener,A需要在B里面!但是等待!B需要AListener!让我们去找AListener吧!"

然后它到达A,重复.我做对了吗?

顺便说一句,这个编译错误发生在Android开发上.

Mic*_*mlk 6

它可能有助于把它画出来.

              >A 
is part of  /     \    inherits
                   V             
   AListener        BListener
           ^
  inherits  \     /    is part of 
               B<
Run Code Online (Sandbox Code Playgroud)

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

编译器是否是咖啡追逐它自己的尾巴的ADHD高的松鼠?

不,因为松鼠不会停止(直到咖啡因用完).编译器会查找它,然后放弃.

注意:Eclipse有一个允许此设置的错误.