我知道的静态对象,构造代码块的初始化顺序

1.静态(静态对象、静态代码块)

  • 静态的初始化发生在类加载的时候,对应的是类本身而不是类的对象。
  • 静态对象和静态代码块的初始化顺序按照他们的代码执行顺序,也就是说,那个在上面就先初始化那个。
  • 静态代码块中初始化的变量是局部变量,和普通的方法一样,会有作用域的限制。
  • 一般我们会在静态代码块中对静态对象进行重新的初始化,根据不同的配置。

2.构造(构造块、构造器)

  • 构造器的初始化和静态有所不同,构造器是在类对象在创建的时候进行的初始化,对应的是类的对象。
  • 一个类的构造器只运行一次,构造块也是一样,但是他的优先级更大,构造块的优先级和成员变量的优先级相同,只低于静态。
  • 构造器和成员变量的初始化循序按照代码的执行顺序,和静态对象和静态块类似。
  • 类在调用不同的构造器创建对象的时候,都会去调用统一的构造块,所以构造器是对单一对象的初始化,构造器是对所有对象的初始化。

3.成员变量

  • 成员变量的优先级要小于静态,大于构造器,和构造块平级。
  • 优先级:静态 > 成员变量/构造器 > 构造器

4.继承

  • 子类必须要调用父类的构造器,默认调用无参的构造器。
  • 子类在初始化的时候,首先会初始化父类,父类的各个初始化顺序遵照以上顺序,父类初始化完成,才会初始化子类。

5.继承中的多态

Java的多态一般表现在重载和重写之中,程序在编译期就会确定好方法的调用,所以重载的方法的调用在编译期就会确定,我们可以称为静态多态。重写的调用相对的就是个动态的过程了,父类对象在指向之类的实例时,程序会动态的选择执行子类的重写方法,所以我们可以称为动态多态。父类对象在调用方法的时候,首先会在父类的中去选择方法,找到之后会判断子类实例是否重写的此方法,如果重写就会调用子类,如果没重写就调用父类的方法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值