`

java子类对象的初始化过程(转)

    博客分类:
  • JAVA
阅读更多

具体的顺序如下:

  初始化顺序:父类静态变量—>父类静态代码块—>子类静态变量—>子类静态代码块—>父类非静态变量—>父类非静态代码块—>父类构造方法—>子类非静态变量—>子类非静态代码块—>子类构造方法

 

  class Father{

  //1

  private static int fs=10;

  //2

  static{

  System.out.println("1.父类静态变量fs="+fs);

  System.out.println("2.父类静态代码块");

  }

  //5

  private int ff=20;

  //6

  {

  System.out.println("5.父类非静态变量ff="+ff);

  System.out.println("6.父类非静态代码块");

  }

  //7

  public Father() {

  System.out.println("7.父类的构造方法");

  }

  }

  class Sun extends Father{

  //3

  private static int ss=100;

  //4

  static{

  System.out.println("3.子类静态变量ss="+ss);

  System.out.println("4.子类静态代码块");

  }

  //8

  private int sf=200;

  //9

  {

  System.out.println("8.子类非静态变量sf="+sf);

  System.out.println("9.子类非静态代码块");

  }

  //10

  public Sun() {

  System.out.println("10.子类的构造方法");

  }

  }

  public class Test {

  public static void main(String[] args) {

  new Sun();

  }

  }

  执行结果:

  1.父类静态变量fs=10

  2.父类静态代码块

  3.子类静态变量ss=100

  4.子类静态代码块

  5.父类非静态变量ff=20

  6.父类非静态代码块

  7.父类的构造方法

  8.子类非静态变量sf=200

  9.子类非静态代码块

  10.子类的构造方法

分享到:
评论

相关推荐

    java 子类对象赋值给父类对象的使用

    2. **构造器与初始化**:子类对象在创建时会先调用父类的构造器,确保父类的状态得到正确初始化,然后执行子类自己的构造逻辑。 3. **变量隐藏**:如果子类和父类有同名的实例变量,子类变量会“隐藏”父类变量。...

    Java子类对象的实例化过程分析

    "Java子类对象的实例化过程分析" Java子类对象的实例化过程是Java面向对象程序设计中一个非常重要的概念。它涉及到Java类的继承、构造函数的调用、对象的实例化等多方面的知识。在这篇文章中,我们将详细介绍Java...

    Java面向对象(进阶)- super关键字的使用与子类对象实例化全过程

    在Java编程语言中,面向对象编程是核心特性之一。...同时,子类对象实例化的过程是先执行父类构造器,再执行子类构造器,保证了对象初始化的顺序。理解和掌握这些概念对于编写高效的Java代码至关重要。

    java代码的初始化顺序demo

    在Java编程语言中,类和对象的初始化是一个关键的概念,对于理解和编写健壮的程序至关重要。这个"java代码的初始化顺序demo"显然旨在演示这一过程。让我们深入探讨Java中的初始化顺序及其背后的机制。 1. **类加载...

    “礼让”原则学习Java对象初始化顺序.pdf

    事实上,Java 对象初始化顺序并不难理解,只需要掌握“礼让”原则和 JVM 的执行过程。 一、Java 对象初始化顺序的重要性 Java 对象初始化顺序是指在 Java 程序中,对象的初始化过程中发生的顺序问题。这是 Java ...

    对象初始化流程梳理对象初始化流程梳理

    Java中的对象初始化流程是编程实践中一个非常重要的概念,它涉及到类加载、静态初始化块、实例初始化块、构造器等多个方面。下面将详细解释这个过程。 首先,对象初始化流程的起点是程序的入口点,即`main`方法。当...

    java实例化对象的过程

    在Java编程语言中,实例化对象是创建类的实例,使其具有特定状态和行为的过程。这个过程涉及到几个关键步骤,让我们深入探讨一下。 首先,我们需要一个类,它是创建对象的蓝图。在Java中,我们使用`class`关键字来...

    Java类继承初始化顺序

    当创建一个子类实例时,初始化过程遵循以下步骤: 1. **静态初始化**:首先,执行父类的静态初始化块,然后执行子类的静态初始化块。静态初始化块用于初始化类级别的静态变量,它们只在类加载时执行一次。 2. **...

    java中类的初始化顺序

    本文将详细探讨Java中类的初始化过程及其顺序,并通过具体的代码示例来帮助理解这一过程。 #### 二、基础知识 1. **静态成员变量(Static Fields)**:在类加载时初始化。 2. **实例成员变量(Instance Fields)**...

    Java中对象初始化顺序的详细介绍

    本文将深入探讨Java中对象初始化的顺序,帮助开发者理解这一过程的细节。 首先,Java类的加载过程分为三个阶段:装载、链接和初始化。装载是将类的.class文件读入内存,并为之创建一个Class对象。链接则是将类的二...

    java程序初始化顺序

    在Java编程语言中,程序初始化的顺序是一个关键概念,它涉及到类加载、对象创建以及执行流程的安排。了解这些顺序对于编写高效、无错误的代码至关重要。以下是对Java程序初始化顺序的详细说明: 1. **类加载阶段**...

    java 初始化与方法

    Java初始化与方法是Java编程语言中的核心概念,它们在程序执行过程中起着至关重要的作用。本文将深入探讨Java中的初始化过程、方法的定义与调用,以及与之相关的源码和工具应用。 首先,让我们从类的初始化开始。在...

    java对象的初始化顺序[参考].pdf

    Java对象的初始化顺序是一个关键的编程概念,它涉及到类加载、静态初始化、实例初始化等多个步骤。下面我们将详细探讨这些步骤。 首先,当程序运行并创建一个新的对象时,JVM(Java虚拟机)会按照特定的顺序来初始...

    类和对象的初始化过程.zip

    这个压缩包文件包含三个源代码文件:StaticTest.java、Test.java和Father.java,它们可能用于演示类和对象初始化的不同方面。让我们逐一探讨这些概念。 1. **类的初始化** 类的初始化通常在以下几种情况下发生: ...

    java面试题-类的初始化顺序.doc

    在创建对象时,父类的初始化先于子类。这是Java语言规范所规定的,确保在子类访问父类的静态或非静态成员时,父类的初始化已经完成。 在实际开发中,理解这个初始化顺序是非常重要的,尤其是在设计复杂的类结构或者...

    深入介绍Java对象初始化

    在Java中,对象初始化的过程分为几个步骤,包括默认初始化、显式初始化和构造器初始化。 **默认初始化**是指Java为所有基本类型的变量提供默认值。如在示例代码中所示,布尔类型`boolean`的默认值是`false`,字符...

    java父类和子类初始化顺序的深入理解

    当创建一个子类对象时,不仅子类的实例变量会被初始化,其父类的实例变量也会按一定的顺序进行初始化。理解这个顺序对于编写复杂的多层继承系统至关重要,避免出现意外的行为。 首先,我们来看一下给定代码的例子:...

    java在hashmap初始化时赋初值过程解析

    Java 在 HashMap 初始化时赋初值过程解析 Java 中的 HashMap 是一种常用的数据结构,一般用来做数据字典或者 Hash 查找的容器。在初始化并赋初值时,我们通常使用 `HashMap, Object> map = new HashMap();` 的方式...

    Java4Android 19_子类实例化过程

    这是因为子类继承了父类的属性和方法,所以在创建子类对象时,必须确保父类的数据成员被正确初始化。这是通过隐式调用super()来实现的,super()是子类构造器中调用父类无参构造器的语法。如果父类没有无参构造器,...

    JAVA类的初始化顺序文.pdf

    子类 --静态初始化块 "); 34. } 35. 36. // 初始化块 37. { 38. System.out.println(s_Field); 39. System.out.println(" 子类 --初始化块 "); 40. } 41. 42. // 构造器 43. public SubClass() { 44. System.out....

Global site tag (gtag.js) - Google Analytics