继承自B,B继承自C.将初始化C的一个invoke构造函数?

Ral*_*lph -2 java oop constructor

当我准备接受有关OOP的采访时,我遇到了这个问题.

继承形式B. B继承自C.将初始化C的一个invoke构造函数?

我所知道的是构造不是继承的.我们必须使用super关键字来引用父的构造函数.我对吗?

Lui*_*oza 5

子类的构造函数将首先调用其超类的构造函数.如果一个类有几个祖先,这些调用将被堆叠,直到调用顶级祖先的构造函数为止.然后,它将继续执行下一个祖先的构造函数,直到执行了祖先的所有构造函数.您可以从这里推断出每次创建对象时Object,总是会调用类的构造函数.

请注意,如果不在super()子类构造函数中添加调用,编译器将自动为您添加调用.如果超类没有默认构造函数,并且您没有在子类的构造函数中指定对超类的特定构造函数的调用,那么您将收到编译器错误.

所有这些规则都在JLS中说明.