如果在类中没有显式地定义构造方法,会自动生成一个无参的构造方法。如果子类没有显式地调用父类的构造方法,默认调用父类无参的构造方法。
举一反三
- 如果子类没有显式地调用父类的构造方法,以下说法正确的是 ( )。 A: 执行子类的构造方法时,默认会去调用父类的无参构造方法 B: 执行子类的构造方法时,默认会去调用父类的带参构造方法 C: 这样是错误的,应该先调用父类的构造方法 D: 这样是错误的,应该执行完子类的构造方法后,去调用父类的构造方法
- 子类不继承父类的构造方法,子类对象创建时默认会调用父类无参数的构造方法,通过super关键字可以显式的指定调用父类的其它构造方法。
- 如果在子类的构造方法中,没有显示地写出super关键字来调用父类的某个构造方法,那么编译器默认地有“super(); " 调用父类的无参数的构造方法;如果父类没有这样的构造方法,代码将出现编译错误。
- 如果在子类的构造方法中,没有显式地写出super关键字来调用父类的某个构造方法,那么编译器默认的有:super(); 。
- 子类的构造方法中,一定会调用父类的构造方法,如果没有指定,会默认调用 A: 有参数的构造方法 B: 无参数的构造方法 C: 调用super() D: 调用this