码迷,mamicode.com
首页 > 其他好文 > 详细

有继承情况下的初始化

时间:2019-12-06 09:34:22      阅读:119      评论:0      收藏:0      [点我收藏+]

标签:实例变量   赋值   调用   也会   声明   创建   组成   对象   情况   

类初始化

  • 类初始化是执行<clinit>()方法,它的代码由两部分组成:
    • (1)静态变量的显式赋值
    • (2)静态代码块
    • 它俩是按照编写的顺序组装而成
  • 每一个类的类初始化方法只会执行一次
  • 子类初始化时会先检查父类,如果父类还没有初始化,会先完成父类的初始化,即先执行父类的<clinit>()方法

实例初始化

  • 一个类可能会有1~n个的<init>方法,有几个看声明了几个构造器
  • 实例初始化是执行对应的<init>方法,具体执行哪个,看new后面调用的是哪个构造器
  • 实例初始化由一下四个部分组成:
    • ①super()或super(实参列表)==>调用父类的对应的实例初始化方法,说明创建子类对象时,也会导致父类的实例初始化方法执行的
      • 其中super()或super(实参列表)是原先写在构造器首行的
    • ②实例变量的显式赋值
    • ③非静态代码块
    • ④构造器中的代码
      • 其中②和③是按代码中编写的顺序组装,①和④是一头一尾
  • 实例初始化,每次new对象时执行,new一个执行一个

类初始化和实例初始化

如果第一次使用某个类时就是在创建对象,那么要先完成类初始化,然后再执行实例初始化

有继承情况下的初始化

标签:实例变量   赋值   调用   也会   声明   创建   组成   对象   情况   

原文地址:https://www.cnblogs.com/daidai66/p/11992967.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!