一、结论:
 
1.实例构造函数与静态构造函数执行顺序
一、初始化顺序(依次是静态变量、静态构造函数、实例变量、实例构造函数)
二、初始化次数(静态的都只会初始化一次)
三、初始化时机(使用类引用任何静态成员之前对或者首次实例化类时会调用静态构造函数,通过静态构造函数初始化类级别的项,即静态字段。非静态的则要在创建对象的时候才初始化);
2.创建子类实例时,其所有构造函数和变量的调用顺序为:
子类静态变量初始化>子类静态构造函数>父类静态变量初始化 > 父类静态构造函数 > 父类实例变量初始化>父类实例构造函数 > 子类实例变量初始化>本身实例构造函数。
二、例子:
父类:
子类:
主函数:
当我创建子类Dog的实例时,执行结果如下:
跟实例构造函数的调用顺序刚好相反,所以创建子类实例时,其所有构造函数和变量的调用顺序为:
子类静态变量初始化>子类静态构造函数>父类静态变量初始化 > 父类静态构造函数 > 父类实例变量初始化>父类实例构造函数 > 子类实例变量初始化>本身实例构造函数。

转载于:https://www.cnblogs.com/jianghuaxin/p/9139459.html

实例构造函数与静态构造函数执行顺序相关推荐

  1. C#构造函数、私有构造函数、静态构造函数与构造函数执行顺序

    https://www.cnblogs.com/ArtofDesign/p/3603986.html 默认构造函数,如果没有为类指定任何构造函数,编译器会自动为类创建一个无参构造函数,用以初始化类的字 ...

  2. C++类继承时构造函数与析构函数的执行顺序

    C++类继承时构造函数与析构函数的执行顺序 在C++类中,类A继承类B时,如果创建一个A的对象时,会首先调用基类的构造函数,再调用派生类的构造函数,而析构函数的执行相反,但是当基类和派生类分别有一个成 ...

  3. 一文读懂C#中的抽象类、抽象方法、virtual虚函数、override重写函数及父类子类构造函数和析构函数的执行顺序

    // 父类 class People {public People(){Console.WriteLine("执行People构造函数!");}public virtual voi ...

  4. 多重继承的构造函数和析构函数的执行顺序(包含虚基类)

    下面示例就是说明多重继承析构函数和构造函数的执行顺序: #include <iostream> using namespace std;class A {public:A(int i){c ...

  5. 静态代码块和静态变量执行顺序

    从以下代码可以看出,静态代码块先执行与构造函数,但是静态代码块和静态变量之间的执行顺序决定于它们在代码中出现的顺序 public class Test5 {public static void mai ...

  6. day9 java的实例语句块和代码执行顺序

    实例语句块 每执行一次构造就会在前执行一次实例语句块 代码执行顺序

  7. 派生类构造函数和析构函数的执行顺序

    派生类继承了基类的成员,实现了代码的重复利用,但基类的构造函数和析构函数不能被继承.如果在派生类中需要对新增加的成员进行初始化,则需要加入派生类的构造函数.同样派生类也需要添加析构函数来实现一些结束工 ...

  8. C++类引用中的构造函数与析构函数的执行顺序练习

    引用的类比被引用的类后构造,先析构 #include <iostream> #include <string>using namespace std;class Phone { ...

  9. 类字面常量和静态代码执行顺序

    今天看Java编程思想的时候对一个程序百思不得其解,完全弄明白花了不少功夫,弄明白后收获不少,这里还要感谢慕课网的一位讲师Qiujuer,非常感谢这位大神平时对我的耐心指导,这让我进步很快,这位大神每 ...

  10. laravel构造函数和中间件执行顺序问题

    今天想重构下代码结构: BaseController.php 放置公共的中间件 class BaseController { public function __construct(){ $this- ...

最新文章

  1. Minor【 PHP框架】3.路由、控制器、视图
  2. Java栈和局部变量操作(二)
  3. Spring MVC handler interceptors example--转载
  4. python正则匹配数字_python 正则匹配字母数字中的任意数字,字母
  5. 基于FFT的信号频谱分析
  6. SDNU 1423.入学考试(01背包)
  7. 10-7 3-2-(b)查询由生产厂商B生产的所有产品的型号(model) 和价格(price) (10 分)
  8. [css] css的linear-gradient有什么作用呢?
  9. 1618D. Array and Operations
  10. (9)Node.js 内置模块
  11. python中什么是序列_在Python中,什么是字符串序列?(或者是油嘴滑舌的虫子?)...
  12. django 模型 使用 DateTimeFields 字段 auto_now_add 属性 实现 插入数据时 自动记录时间...
  13. 贺利坚老师汇编课程37笔记:运用栈加两层循环之把六个字符串里的字母都改写成大写字母
  14. 怎样从本地删除git远程仓库里面的文件
  15. 网络安全系列-二十五: PCAP文件格式详解及读取PCAP文件源码示例
  16. 2016届腾讯实习生招聘上海站回忆版
  17. 你想要的宏基因组-微生物组知识全在这(2020.10)
  18. CVPR2022Oral专题系列(一):低光增强
  19. Java面试题及答案2019版(下),mysql事务隔离级别原理
  20. vue项目性能优化(图片优化)

热门文章

  1. ASP.NET HttpHandler加水印
  2. pfSense修改mbuf值
  3. 【leetcode】 Unique Binary Search Trees (middle)☆
  4. Windows Server 2012 R2 WSUS-3:安装服务器角色
  5. 【转】js获取浏览器信息和客户端硬件信息
  6. Hyper-V里安装Linux虚机
  7. CISCO的NAT配置笔记
  8. CompositeUI Demo BankBranchWorkbench
  9. rz/sz安装与乱码问题
  10. fcm模糊聚类matlab实例_智能控制-Fuzzy控制- matlab