Java中,子类中所有的构造方法默认都会访问父类中空参数的构造方法。对吗
时间: 2024-03-04 10:48:21 浏览: 105
不完全正确。在Java中,如果子类中的构造方法没有显式地调用父类的构造方法,则编译器会默认在子类构造方法的第一行调用父类的无参构造方法。如果父类中没有无参构造方法,而且子类中的构造方法又没有显式地调用父类中其它有参的构造方法,则编译器会报错。
如果父类中没有无参构造方法,而子类中的构造方法需要调用父类中的有参构造方法,则可以使用`super(…)`语句在子类中调用父类中的有参构造方法。在这种情况下,子类的构造方法必须显式地调用父类的构造方法,不能依赖编译器的默认处理。
因此,子类中所有的构造方法并不默认都会访问父类中空参数的构造方法,而是默认访问父类中的无参构造方法。如果父类中没有无参构造方法,则子类的构造方法必须显式地调用父类的有参数构造方法。
相关问题
判断正误:子类中所有的构造函数默认都会访问父类中空参数的构造函数
答案:错误。
如果子类中的构造函数没有显式地调用父类中的构造函数,那么编译器会自动添加一个空参数的 super() 调用,以调用父类中的空参数构造函数。但是,如果父类中没有空参数的构造函数,或者被重载了,则子类中的构造函数必须显式地调用父类中的某个构造函数。因此,并不能说子类中所有的构造函数默认都会访问父类中空参数的构造函数。
判断正误:、子类中所有的构造函数默认都会访问父类中空参数的构造函数
答案:错误。
如果子类中的构造函数没有显式地调用父类中的构造函数,那么编译器会自动添加一个空参数的 super() 调用,以调用父类中的空参数构造函数。但是,如果父类中没有空参数的构造函数,或者被重载了,则子类中的构造函数必须显式地调用父类中的某个构造函数。因此,并不能说子类中所有的构造函数默认都会访问父类中空参数的构造函数。
阅读全文