第一题
/*
看程序写结果:
A:成员变量就近原则
B:this和super的问题
this访问本类的成员
super访问父类的成员
C:子类构造方法执行前默认先执行父类的无参构造方法
D:一个类的初始化过程
成员变量进行初始化
默认初始化
显示初始化
构造方法初始化 用参数去调用构造函数就是显式初始化,没有参数就是默认初始化,表现为直接声明对象和数组
所以执行父类无参构造方法前会先执行成员变量的初始化,public int num = 10;,再执行无参构造方法,同理,执行完父类无参构造方法,再执行子类成员变量的初始化,public int num = 20;最后执行子类构造方法。
结果:
fu
zi
30
20
10
*/
class Fu{
public int num = 10;//public int num;这是第一步,不赋值,默认为0,称为默认初始化;第二步,把10赋予给num,这一步称为显式初始化,每个成员变量赋值都会在jvm的堆内存执行 //这样的两个步骤。
public Fu(){
System.out.println("fu");
}
}
class Zi extends Fu{
publi