继承和初始化时,程序运行顺序的自己的理解。
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越来越有意思。以后养成写博客的习惯。希望以后会越来越好。
首先是一个基类:
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越来越有意思。以后养成写博客的习惯。希望以后会越来越好。
相关文章推荐
- java中子类继承父类,程序运行顺序
- 子类继承父类程序运行顺序
- 深入java (类)深入理解类的继承和初始化顺序
- Java程序运行的初始化顺序
- 【深入理解JVM】:Java类继承关系中的初始化顺序
- 【深入理解JVM】:Java类继承关系中的初始化顺序
- java中子类继承父类,程序运行顺序
- java中子类继承父类,程序运行顺序
- java中子类继承父类,程序运行顺序的深入分析
- 一个Java小程序,帮助理解Java继承中的初始化过程
- 理解Linux环境变量及配置文件执行顺序 博客分类: Linux 每个用户都有自己专属的运行环境,这个环境是由一组变量所定义,这些变量称之为环境变量。用户可以修改环境变量以满足自己的要求。
- 类的继承,初始化后运行顺序
- java中子类继承父类,程序运行顺序
- java程序运行顺序(main方法 静态 非静态 以及衍生出的部分定义)
- 理解Java类中构造方法的执行顺序和变量初始化
- 如何准确的统计自己程序的运行时间
- linux下一般程序运行时查找动态库的顺序
- 创建并运行一个基本的Python测试程序(自己的看法修改)
- 线程安全不安全的辅助理解,可以拿这个例子自己去运行看看
- 正尝试在 OS 加载程序锁内执行托管代码。不要尝试在 DllMain 或映像初始化函数内运行托管代码,这样做会导致应用程序挂起。