您的位置:首页 > 其它

继承和初始化时,程序运行顺序的自己的理解。

2017-11-02 07:58 281 查看
代码如下:(java编程思想第四版书上代码)

首先是一个基类:



2.子类代码



运行结果:

1、static Insect x1 init

2、static beetle.x2 init

3、beetle constructor

4、i=9,j=0

5、Beetle.k init

6、k==47

7、j==39

程序的运行顺序如下:

如果存在基类,则程序运行时,会先初始化基类的static。然后初始化自身类的static。

所以控制台会先打印出1,2两行代码。

程序继续往下执行,会先执行main函数中的打印*(System.out.println("beetle constructor");)。这是第三行。

然后会初始化Beetle对象。它是子类。所以需要先初始化父类的构造器。所以打印的第四个结果是父类中的构造器打印(即。i=9,j=0)

接着会初始化子类对象。按照程序顺序,先打印出Beetle.k init。最后执行子类构造器函数打印。

总是不理解这里的运行。基础太差了。塌下心来看下基础。有了很多的体会。慢慢的感觉java越来越有意思。以后养成写博客的习惯。希望以后会越来越好。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: