多选题
关于构造函数下面哪俩个选项的叙述是正确的?
A
A.A:super()或者this()必须放在构造函数中的第一句
B
B.B:如果父类的构造函数没有参数,那么子类的构造函数一定没有参数
C
C.C:构造函数不能被继承
D
D.D:构造函数不能被重载
答案解析
正确答案:AC
解析:
选项解析:
A. super()或者this()必须放在构造函数中的第一句
正确。在Java中,super()用于调用父类的构造方法,而this()用于调用同一类中的其他构造方法。这两个调用都必须是构造函数中的第一个执行语句,否则编译器会报错。
B. 如果父类的构造函数没有参数,那么子类的构造函数一定没有参数
错误。即使父类有一个无参构造函数,子类也可以有带参数的构造函数。在子类的构造函数中,可以显式地通过super()调用父类的无参构造函数,也可以选择不调用。
C. 构造函数不能被继承
正确。构造函数是用于创建对象时初始化类成员的特殊方法,它不是类成员,因此不会被继承。每个类都有自己独立的构造函数。
D. 构造函数不能被重载
错误。构造函数可以被重载,即可以在同一个类中定义多个名称相同但参数列表不同的构造函数。
答案分析: 选择AC,因为选项A和C的叙述是正确的。选项B和D的叙述是错误的,如上述解析所述。
A. super()或者this()必须放在构造函数中的第一句
正确。在Java中,super()用于调用父类的构造方法,而this()用于调用同一类中的其他构造方法。这两个调用都必须是构造函数中的第一个执行语句,否则编译器会报错。
B. 如果父类的构造函数没有参数,那么子类的构造函数一定没有参数
错误。即使父类有一个无参构造函数,子类也可以有带参数的构造函数。在子类的构造函数中,可以显式地通过super()调用父类的无参构造函数,也可以选择不调用。
C. 构造函数不能被继承
正确。构造函数是用于创建对象时初始化类成员的特殊方法,它不是类成员,因此不会被继承。每个类都有自己独立的构造函数。
D. 构造函数不能被重载
错误。构造函数可以被重载,即可以在同一个类中定义多个名称相同但参数列表不同的构造函数。
答案分析: 选择AC,因为选项A和C的叙述是正确的。选项B和D的叙述是错误的,如上述解析所述。
相关知识点:
构造函数要点速记
