子类继承父类的时候,子类的构造函数怎么写
构造函数用于构造一个类,是不能继承,不能被覆盖的。
(1)父类显式定义有参构造函数,而没有定义无参构造函数的时候,java虚拟机默认不自动创建一个无参构造函数。
(2)如果父类显式的添加无参构造函数,则子类可以创建自己的有参或无参构造函数,如果子类没有显示调用父类的有参构造函数,则java自动调用父类的无参构造函数。
(3)如果父类没有显式的添加无参构造函数,则子类认为父类的无参构造函数是不存在的,即父类没有默认的构造函数;
则子类必须要有有参构造函数,需要在子类的构造函数里显式的调用父类的有参构造函数,且调用语句必须作为第一句;
且子类中不能添加无参构造函数,因为无参构造函数也会自动调用父类的无参构造函数,既然父类中没有,那么子类中无可调用。
public class Father {
private int yearold;//当父类当中出现私有变量时,最好加上存取器
Father(int year){
yearold=year;
}
Father(){
call();
}
public void call(){
System.out.println("Input an Integer number");
yearold=new Scanner(System.in).nextInt();
}
public int birthyear(){
return 2019-yearold;
}
public void motherName(String name){
System.out.println("Mother name is "+name);
}
}
public class Son extends Father{
private int yearold;
Son(int year) {
super();//这里调用父类的无参构造方法会需要输入一个整数
yearold=year;
}
}