this()用法: 一个构造函数可以使用this()来调用同一个类的另外一个构造函数。 一个构造函数最多只能调用一次this(),且this()只能作为构造函数的第一条语句。
super()用法: 一个构造函数使用super()来调用父类的构造函数。 如果没有为一个类编写构造函数,则编译器会自动构造一个不带参数的构造函数,且构造函数中只有一条语句super();。 如果为一个类编写了构造函数,但是构造函数中没有调用super(),则编译器会自动在构造函数的起始位置中添加语句super();。 super()只能调用父类中不带参数的构造函数,如果需要调用父类中带有参数的构造函数,则需要在构造函数的起始位置显示调用 super(),并传入参数。尤其需要注意,如果父类中没有默认构造函数(即所有构造函数都带参数),则必须在子类的构造函数中显示调用super(), 并传入参数,否则会编译出错。
注意:每个构造函数只能选择调用super()和this()中的一个,不能同时调用。
|