[5v]Java继承中父类与子类的初始化顺序

在 Java 编程语言中,对象的初始化是非常结构化的,这样做是为了保证安全。在前面的模块中,看到了当一个特定对象被创建时发生了什么。由于继承性,对象被完成,而且下述行为按顺序发生:
存储空间被分配并初始化到 0 值
进行显式初始化
调用构造方法
层次中的每个类都会发生最后两个步骤,是从最上层开始。

Java 技术安全模式要求在子类执行任何东西之前,描述父类的一个对象的各个方面都必须初始化。因此,Java 编程语言总是在执行子构造方法前调用父类构造方法的版本。有继承的类在运行的时候,一定要记得:初始化子类必先初始化父类,这是Java 程序的一个基本运行过程。比如:
1. public class Test extends Parent {
2.       private String name;
3.       private int age;
4.       public Test() {
5.           name="Tom";
6.           age=20;
7.       }
8.       public static void main(String[] args) {
9.           Test t = new Test();
10.         System.out.println(t.name + "的年龄是" + t.age);
11.     }
12. }
13. class Parent {
14.     private int num = 1;
15.     public Parent() {
16.         System.out.println("现在初始化父类");
17.     }
18.     public void test() {
19.     System.out.println("这是父类的test方法");
20.     }
21. }

上述类的基本运行顺序是:
先运行到第 8 行,这是程序的入口。
然后运行到第 9 行,这里要 new 一个 Test,就要调用 Test 的构造方法。
就运行到第 4 行,注意:初始化子类必先初始化父类。
要先初始化父类,所以运行到第 15 行。
然后是第 14 行,初始化一个类,必须先初始化它的属性。
然后是第 16 行。
然后是第 17 行,表示父类初始化完成。
然后是回到子类,开始初始化属性,因此运行到第 2 行,然后是第 3 行。
子类属性初始化完过后,才回到子类的构造方法,执行里面的代码,也就是第 5、6 行。
然后是第7 行,表示 new 一个 Test 实例完成。
然后回到 main 方法中执行第 10 行。
然后是第 11 行。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值