如图,子类 student 第一个构造函数 里面没有 调用super(参数列表),并且 父类里面没有 无参数的构造函数,然后 这个构造函数里面 又有一个 两个参数的构造函数,请问为啥 调用这个构造函数 不会报错。理论上说 应该是 先调用 super();在执行 下面的 函数!而 父类没有无参函数应该会 报错啊,求大神解释
student第一个构造函数Student(String name, String school)不是调用了另一个3个参数的构造函数么,那个函数里有调用父类构造函数,所以没问题,构造顺序是这样的:
Student(name, school)如果把第一个构造函数中的 this(name, school, "beijing") 注释掉,就会看到编译错误了。
父类构造函数是一定要调用的,这个概念不用怀疑。只是调用同级其他构造函数优先于父类构造函数。