继承之初始化顺序

1.继承之初始化顺序
  1)初始化父类在初始化子类
  2)先执行初始化对象中的属性,在执行构造方法中的初始化
  父类对象 -> 属性初始化 -> 构造方法(更改属性值)
     |
     V
  子类对象 -> 属性初始化 -> 构造方法(更改属性值)

demo:

父类:

public class Animal {

	public int age = 10;  //属性初始化
	public String name;
	public int food;

/***************************/

    public Animal() {
		System.out.println("父类初始化");
		age = 20;       //构造方法更改属性值
	}
}

子类:

//class 子类  extends 父类
public class Cat extends Animal {

    public Cat() {
		System.out.println("子类初始化");
	}
}

测试类:

public class TestZiFuLei {
	public static void main(String[] args) {

		int a = 5;
		//建立针对子类的对象
		Cat work1 = new Cat();   //创建子类对象时,自动的执行父类的构造方法,
                                        //并且创建父类对象。优先创建父类对象,在创建子类对象
		
		Animal work2 = new Animal();
		System.out.println("Animal的属性age的初始化是后来初始化的 :" + work2.age);
		//表示属性初始化  -> 构造方法
    	}

}

 

运行结果:

父类初始化  //自动执行父类构造方法,并创建父类对象
子类初始化  //然后在执行子类构造方法
父类初始化
Animal的属性age的初始化是后来初始化的 :20

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值