子类的构造函数总是隐式调用超类的默认无参数构造函数,除非是( ):
超类是抽象类。
子类在其默认的无参数构造函数之外定义了额外的构造函数。
该子类的构造函数明确调用了超类的另一个构造函数。
超类在其默认的无参数构造函数之外定义了额外的构造函数。
构造函数的特点
构造函数的名称必须与类名相同,而且还对大小写敏感。
构造函数没有返回值,也不能用void修饰。如果跟构造函数加上返回值,那这个构造函数就会变成普通方法。
一个类可以有多个构造方法,如果在定义类的时候没有定义构造方法,编译器会自动插入一个无参且方法体为空的默认构造函数。
构造方法可以重载。
"超类是抽象类。":抽象类同样遵循构造函数规则
“子类在其默认的无参数构造函数之外定义了额外的构造函数。”:子类的每个构造函数都会被要求直接或者间接调用超类的构造函数。
“超类在其默认的无参数构造函数之外定义了额外的构造函数。”:如果超类定义了其他构造函数,子类会被要求选择其一进行显式调用。
构造函数的名称必须与类名相同,而且还对大小写敏感。
构造函数没有返回值,也不能用void修饰。如果跟构造函数加上返回值,那这个构造函数就会变成普通方法。
一个类可以有多个构造方法,如果在定义类的时候没有定义构造方法,编译器会自动插入一个无参且方法体为空的默认构造函数。
构造方法可以重载。
"超类是抽象类。":抽象类同样遵循构造函数规则
“子类在其默认的无参数构造函数之外定义了额外的构造函数。”:子类的每个构造函数都会被要求直接或者间接调用超类的构造函数。
“超类在其默认的无参数构造函数之外定义了额外的构造函数。”:如果超类定义了其他构造函数,子类会被要求选择其一进行显式调用。