基类写了默认的构造函数,子类未明确调用 :(√) :这个情况,子类就可以默认调用到默认的构造函数
基类写了的默认构造函数,子类明确调用 :(√) :这个情况,子类就可以默认调用到默认的构造函数
基类没有写默认的构造函数,子类明确调用 : (√) : 这个情况,系统会给基类生成一个默认的构造函数,这样,子类就可以默认调用
基类没有写默认的构造函数,子类未明确调用 : (√):这个情况,系统会给基类生成一个默认的构造函数,这样,子类就可以默认调用
基类写了一个带参数的构造函数,没有写默认的构造函数,子类没有明确调用基类的构造函数:(×),这样子的话,因为写了构造函数,那么编译器就不再生成构造函数了,这样,当子类想去调用基类的默认构造函数的时候,就找不到了。
基类写了一个带参数的构造函数,也写默认的构造函数,子类没有明确调用基类的构造函数:(√),因为还是有默认的构造函数,所以,子类还是可以调用到这个默认的构造函数。
也就是说,不管怎么样,如果子类没有显式调用基类的构造函数,那么就一定要保证基类里面有默认的构造函数。