1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
public
class
Test{
public
static
void
main(String[] args){
Child child =
new
Child();
}
}
class
Parent{
public
Parent(){
super
();
show();
//this.show(); 因为是Child类对象调用了super()来构造其父类的部分;所以父类中的this(随着其构造方法入栈的)是指向Child类对象的!所以调用的就是Child类对象的show方法!
return
;
}
public
void
show(){
System.out.println(
"parent run!"
);
}
}
class
Child
extends
Parent{
int
num =
8
;
//显示初始化
public
Child(){
super
();
//--> 这一块是分水岭,咋回事呢? super();执行完毕也就是父类初始化完毕,才会对子类进行显示初始化
// 也就是 num=8这句显示初始化加载了构造函数紧挨着super();语句之后; 然后是子类中的数据的特定初始化!
System.out.println(
"num = "
+ num);
num =
10
;
//特定初始化
System.out.println(
"num = "
+ num);
}
public
void
show(){
System.out.println(
"child run && num = "
+ num);
}
}
|
本文转自 小眼儿 博客园博客,原文链接:http://www.cnblogs.com/hujunzheng/p/3872594.html,如需转载请自行联系原作者