Java继承中父类与子类的初始化顺序

xiaoxiao2021-02-28  68

在 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 行。
转载请注明原文地址: https://www.6miu.com/read-56114.html

最新回复(0)