Java中的循环继承层次结构

use*_*r85 3 java inheritance

我知道Java中不允许使用循环继承层次结构.编译器会抛出错误,但我真正感兴趣的是知道编译失败的确切原因.

class A extends B{}
class B extends C{}
class C extends A{}  // this will give you compile time error.
Run Code Online (Sandbox Code Playgroud)

在我编写代码的那一刻,编译器将抛出错误的原因是什么 class C extends A{}

Som*_*ame 9

这种关系根本不可能.它定义了一个无限递归类.为了定义class C,您需要class A定义class A您的需要class B,并定义class B您的需求class C- 您将回到起点.这是无限的,所以编译器不能这样做,它也没有逻辑意义.