子类的实例化过程
子类的所有的构造函数,默认都会有访问父类空参数的构造函数,因为子类每一个构造函数内的第一行都有一句话隐式
的语句 super();
当父类中没有空参数的构造,子类必须要自己手动通过 super语句的形式来指定要访问父类的构造函数
当然子类的构造函数的第一行也可以手动指定 this关键字 语句来访问本类中的构造函数。
看以下例子:
public class X {
public static void main(String[] args){
zi Z=new zi();//创建zi类对象
}
}
class fu{
int Age;
int height;
public fu (int Age,int height){ //有参数的构造函数
System.out.println("父类");
System.out.println("年龄"+Age);
System.out.println("身高"+height+"米");
}
}
class zi extends fu { //子类继承父类
public zi(){ //构造函数
super(18,170);//手动添加 访问父类的构造函数
//super();这里是隐式的!
}
}
/*
输出结果是:
父类
年龄18
身高170米
子类
为什么 创建子类对象为什么一定要访问父类的构造函数?
因为:在构造函数的第一行有一条隐式的 super();语句。
也可以手动的添加 super()访问父类的构造函数。
其实吧!这是子类对象实例的初始过程 ,她会看这父类是怎么做的,如果父类已经做了,不就不用做了。
直接拿拿过来用就可以了 不需要再重新定义了,父类也有隐式的super()语句 她会逐渐向上找!
*/