本帖最后由 yaolv7 于 2016-4-9 22:21 编辑
- <div class="blockcode"><blockquote>public class Code {
- static { //Code静态代码块
- System.out.println("Code 静态代码块 ①");
- }
-
- public static void main(String[] args) { //主方法
- Zi z = new Zi(); //创建Zi类对象
- }
- }
- class Fu {
- static { //Fu静态代码块
- System.out.println("Fu 静态代码块 ②");
- }
-
- { //Fu构造代码块
- System.out.println("Fu 构造代码块 ③");
- }
-
- public Fu() { //Fu构造方法
- super();
- System.out.println("Fu构造方法 ④");
- }
- }
- class Zi extends Fu {
- static { //Zi静态代码块
- System.out.println("Zi 静态代码块 ⑤");
- }
-
- { //Zi 构造代码块
- System.out.println("Zi 构造代码块 ⑥");
- }
-
- public Zi() { //Zi构造方法
- super();
- System.out.println("Zi 构造方法 ⑦");
- }
- }
复制代码 运行结果:
Code 静态代码块 ①
Fu 静态代码块 ②
Zi 静态代码块 ⑤
Fu 构造代码块 ③
Fu 构造方法 ④
Zi 构造代码块 ⑥
Zi 构造方法 ⑦
Zi 构造方法⑦ 里不是有一句super();么,明明调用了 Fu 构造方法④,为什么执行顺序是 3467,而不是3647
|
|