对于Java类的构造方法我们大家都不陌生,只要你是开发你就会用到,Java类的构造方法可以有带参的和不带参的。
当我们声明了一个带参的构造方式时,需要显示的声明一个不带参的构造方法,以便其他用到无参构造创建对象,其原因就是因为当我们没有声明构造方法时,虚拟机会自动给我们隐式的声明一个无参构造方法,当我们手动声明一个带参的构造方法,虚拟机就不会为我们生成无参构造了,所以为了方便,我们在声明带参构造时必须声明一个无参构造。
当子类继承一个只有带参构造的类时,必须得声明构造方法并且得显示的使用supper(带参数)。这是一个受检查的异常,而且也不会有人这么干,只不过面试中被人问道,所以写出来了。上段代码看看
package com.mytest.demo.test;
public class Mytest extends TestParent{
//这里必须显示的声明一个带参构造并且显示的使用super,否则会
public Mytest(String str) {
super(str);
}
public static void main(String[] args) {
}
}
class TestParent{
private String mytest;
//显示的声明了一个带参构造
public TestParent(String str) {
mytest = str;
}
}