Java常见问题之this()和super()的用法


this()用法:
一个构造函数可以使用this()来调用同一个类的另外一个构造函数。
一个构造函数最多只能调用一次this(),且this()只能作为构造函数的第一条语句。

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

注意:每个构造函数只能选择调用super()和this()中的一个,不能同时调用。

本文永久更新链接地址:

相关内容