无参构造函数的作用

1 系统的两个默认行为

  • 虽然没有显示声明父类的无参的构造方法,系统会自动默认生成一个无参构造方法。但是,如果你声明了一个有参的构造方法,而没有声明无参的构造方法,这时系统不会动默认生成一个无参构造方法。
  • Java 程序在执行子类的构造方法之前,如果没有用 super()来调用父类特定的构造方法,则会调用父类中“没有参数的构造方法”。

2 使用场景

根据上面两个默认行为,当父类中存在有参构造函数时,不会默认生成无参构造函数。同时子类中构造函数没有显式的调用父类的构造函数,则会调用无参构造函数,就会报错。如下:

There is no default constructor available in ‘com.hello.demo.controller.father’

Logo

助力广东及东莞地区开发者,代码托管、在线学习与竞赛、技术交流与分享、资源共享、职业发展,成为松山湖开发者首选的工作与学习平台

更多推荐