如果父类没有无参构造方法,而子类构造方法又没有显式调用父类的构造方法,那么编译器会报错
时间: 2024-06-20 07:02:55 浏览: 9
当父类没有无参构造方法时,子类的构造方法必须显式地调用父类的构造方法,并且必须在子类构造方法的第一行调用,否则编译器会报错。这是因为在创建子类对象时,需要先创建父类对象,如果没有显式调用父类的构造方法,编译器也会尝试去调用一个默认的无参构造方法,但是由于父类没有提供无参构造方法,因此会导致编译错误。
如果你在子类的构造方法中没有显式调用父类的构造方法,并且父类又没有无参构造方法,那么编译器就会报错。因此,在这种情况下,你需要在子类的构造方法中显式地调用父类的有参构造方法,以确保正确创建父类和子类的对象。
相关问题
java在调用子类构造方法的时候会先调用父类的无参构造方法,目的是?
Java在创建子类对象时,会先调用父类的构造方法来完成父类对象的初始化。如果子类的构造方法没有显式调用父类的构造方法,则会默认调用父类的无参构造方法。这是因为子类继承了父类的属性和方法,需要先初始化父类的属性,才能保证子类的正确性。
如果父类没有无参构造方法,而只有有参构造方法,那么子类必须显式调用父类的有参构造方法来完成父类的初始化。这可以通过使用`super()`关键字来实现,例如`super(参数列表)`。在这种情况下,子类必须在构造方法的第一行显式调用`super()`或者`super(参数列表)`,否则编译器会报错。
如果父类没有无参的构造方法,系统会调用第一个带参数的构造方法创建对象。对吗
不完全正确。如果父类没有无参构造方法,且子类的构造方法没有显式地调用父类的构造方法,那么编译器会报错。因为子类必须先调用父类的构造方法来完成父类的初始化工作。如果子类的构造方法显式地调用了父类的构造方法,则可以传递参数来初始化父类。如果子类的构造方法没有显式地调用父类的构造方法,则编译器会默认调用父类的无参构造方法来完成父类的初始化工作。如果父类没有无参构造方法,则编译器会报错。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)