无参构造函数的作用
1 系统的两个默认行为
- 虽然没有显示声明父类的无参的构造方法,系统会自动默认生成一个无参构造方法。但是,如果你声明了一个有参的构造方法,而没有声明无参的构造方法,这时系统不会动默认生成一个无参构造方法。
- Java 程序在执行子类的构造方法之前,如果没有用
super()
来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。
2 使用场景
根据上面两个默认行为,当父类中存在有参构造函数时,不会默认生成无参构造函数。同时子类中构造函数没有显式的调用父类的构造函数,则会调用无参构造函数,就会报错。如下:
There is no default constructor available in ‘com.hello.demo.controller.father’