java包括继承的类的初始化全过程

/*
新建两个类,父类Father和子类Son,为了观察实验效果,各自创建一个printInit()
方法,此方法打印信息,并可以返回我们需要的一个初始值。

1.首先访问InitOrder.main()(static方法);
2.然后加载Son类,发现其继承自Fatherl类,继续加载Father类(如果还有基类,继续向上加载);
3.初始化Father类的static成员,此时Father类的普通成员置为默认值(int型置之为0);
4.然后初始化子类Son的static成员,同样Son类的普通成员置为默认值;
5.然后分别初始化Father的普通成员和构造器;
6.最后初始化Son的普通成员和构造器。

初始化顺序优先级
同一个类中优先级:
static成员 > 普通成员 > 构造器
类之间:
父类 > 子类

*/
import static com.tiantian.Print.*;
class Father{
 private int age = printInit("2.Father's age.");
 private static int weight = printInit("1.Father's weight.");
 Father(){
  
  println("3.Father's age is "+age);
 }
 private static int printInit(String str){
  println(str);
  return 57;
 }
}

class Son extends Father{
 private int age = printInit("2.Son's age.");
 private static int weight = printInit("1.Son's weight.");
 Son(){
  
  println("3.Son's age is "+age);
 }
 private static int printInit(String str){
  println(str);
  return 24;
 }
}
public class InitOrder{
 public static void main(String[] args){
  new Son();
 }
}
/*
程序输出如下:
1.Father's weight.
1.Son's weight.
2.Father's age.
3.Father's age is 47
2.Son's age.
3.Son's age is 22

*/

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值