我知道措辞有点令人困惑和奇怪,但忍受我,我不知道如何短语,任何更短.
假设你有一个被调用的类SuperBlah,并且你在一个叫做的类中继承了它,Blah然后你继承Blah了一个名为ChildBlah(So SuperBlah-Blah-ChildBlah)的类.super();在ChildBlah构造函数中使用的关键字SuperBlah是否Blah会在没有构造函数的情况下调用构造函数?
对于那些拒绝的人,那为什么会这样呢?我们有一个名为BlusterBug的类,它扩展了Critter类,并在BlusterBug的构造函数中调用了super.Critter没有构造函数,但是Critter扩展的Class确实有一个构造函数.(我故意省略了类的其余代码)
public class BlusterCritter extends Critter {
// instance vaiables
private int courageFactor;
private static final double DARKENING_FACTOR = 0.05;
// create a constructor(include what is necesary for parent)
public BlusterCritter(int c)
{
super();
courageFactor = c;
}
Run Code Online (Sandbox Code Playgroud)
然后在Critter类中,它没有任何构造函数!
public class Critter extends Actor// omitted all the code
{
/**
* A critter acts by getting a list of other …Run Code Online (Sandbox Code Playgroud)