可以加深对java执行流程理解的一段代码

1.源代码

package com.oop.base.base;

public class B extends A {

	public B() {
		super();
		super.method();
	}

	int i = 1000;

	public void method() {
		System.out.println(this.i + " :B");
		return;
	}

	public static void main(String[] args) {
		System.out.println(new B().i);
	}
}
class A {

	public A() {
		this.method();
	}

	int i = 100;

	public void method() {
		System.out.println(i + " :A");
		return;
	}
}

二.执行流程分析

    1.new B()这个操作,调用其构造方法,构造方法内部继续调用父类构造方法。

    2.父类构造方法在真正执行以前,需要对其成员属性进行初始化,(int i = 100),然后调用method方法,

这里大部分肯定会疑惑,为什么调用的是B类的method。这个问题的答案在于java的继承模型。(我会另写博客)。

   3.返回B类构造方法,初始化B类成员变量。

   4.调用父类method。

三.总结

    这里关键在于:

    1.类对的初始化时机

    2.继承模型,这个是核心



阅读更多
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭