具体的顺序如下:
初始化顺序:父类静态变量—>父类静态代码块—>子类静态变量—>子类静态代码块—>父类非静态变量—>父类非静态代码块—>父类构造方法—>子类非静态变量—>子类非静态代码块—>子类构造方法。
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.子类的构造方法
分享到:
相关推荐
2. **构造器与初始化**:子类对象在创建时会先调用父类的构造器,确保父类的状态得到正确初始化,然后执行子类自己的构造逻辑。 3. **变量隐藏**:如果子类和父类有同名的实例变量,子类变量会“隐藏”父类变量。...
"Java子类对象的实例化过程分析" Java子类对象的实例化过程是Java面向对象程序设计中一个非常重要的概念。它涉及到Java类的继承、构造函数的调用、对象的实例化等多方面的知识。在这篇文章中,我们将详细介绍Java...
在Java编程语言中,面向对象编程是核心特性之一。...同时,子类对象实例化的过程是先执行父类构造器,再执行子类构造器,保证了对象初始化的顺序。理解和掌握这些概念对于编写高效的Java代码至关重要。
在Java编程语言中,类和对象的初始化是一个关键的概念,对于理解和编写健壮的程序至关重要。这个"java代码的初始化顺序demo"显然旨在演示这一过程。让我们深入探讨Java中的初始化顺序及其背后的机制。 1. **类加载...
事实上,Java 对象初始化顺序并不难理解,只需要掌握“礼让”原则和 JVM 的执行过程。 一、Java 对象初始化顺序的重要性 Java 对象初始化顺序是指在 Java 程序中,对象的初始化过程中发生的顺序问题。这是 Java ...
Java中的对象初始化流程是编程实践中一个非常重要的概念,它涉及到类加载、静态初始化块、实例初始化块、构造器等多个方面。下面将详细解释这个过程。 首先,对象初始化流程的起点是程序的入口点,即`main`方法。当...
在Java编程语言中,实例化对象是创建类的实例,使其具有特定状态和行为的过程。这个过程涉及到几个关键步骤,让我们深入探讨一下。 首先,我们需要一个类,它是创建对象的蓝图。在Java中,我们使用`class`关键字来...
当创建一个子类实例时,初始化过程遵循以下步骤: 1. **静态初始化**:首先,执行父类的静态初始化块,然后执行子类的静态初始化块。静态初始化块用于初始化类级别的静态变量,它们只在类加载时执行一次。 2. **...
本文将详细探讨Java中类的初始化过程及其顺序,并通过具体的代码示例来帮助理解这一过程。 #### 二、基础知识 1. **静态成员变量(Static Fields)**:在类加载时初始化。 2. **实例成员变量(Instance Fields)**...
本文将深入探讨Java中对象初始化的顺序,帮助开发者理解这一过程的细节。 首先,Java类的加载过程分为三个阶段:装载、链接和初始化。装载是将类的.class文件读入内存,并为之创建一个Class对象。链接则是将类的二...
在Java编程语言中,程序初始化的顺序是一个关键概念,它涉及到类加载、对象创建以及执行流程的安排。了解这些顺序对于编写高效、无错误的代码至关重要。以下是对Java程序初始化顺序的详细说明: 1. **类加载阶段**...
Java初始化与方法是Java编程语言中的核心概念,它们在程序执行过程中起着至关重要的作用。本文将深入探讨Java中的初始化过程、方法的定义与调用,以及与之相关的源码和工具应用。 首先,让我们从类的初始化开始。在...
Java对象的初始化顺序是一个关键的编程概念,它涉及到类加载、静态初始化、实例初始化等多个步骤。下面我们将详细探讨这些步骤。 首先,当程序运行并创建一个新的对象时,JVM(Java虚拟机)会按照特定的顺序来初始...
这个压缩包文件包含三个源代码文件:StaticTest.java、Test.java和Father.java,它们可能用于演示类和对象初始化的不同方面。让我们逐一探讨这些概念。 1. **类的初始化** 类的初始化通常在以下几种情况下发生: ...
在创建对象时,父类的初始化先于子类。这是Java语言规范所规定的,确保在子类访问父类的静态或非静态成员时,父类的初始化已经完成。 在实际开发中,理解这个初始化顺序是非常重要的,尤其是在设计复杂的类结构或者...
在Java中,对象初始化的过程分为几个步骤,包括默认初始化、显式初始化和构造器初始化。 **默认初始化**是指Java为所有基本类型的变量提供默认值。如在示例代码中所示,布尔类型`boolean`的默认值是`false`,字符...
当创建一个子类对象时,不仅子类的实例变量会被初始化,其父类的实例变量也会按一定的顺序进行初始化。理解这个顺序对于编写复杂的多层继承系统至关重要,避免出现意外的行为。 首先,我们来看一下给定代码的例子:...
Java 在 HashMap 初始化时赋初值过程解析 Java 中的 HashMap 是一种常用的数据结构,一般用来做数据字典或者 Hash 查找的容器。在初始化并赋初值时,我们通常使用 `HashMap, Object> map = new HashMap();` 的方式...
这是因为子类继承了父类的属性和方法,所以在创建子类对象时,必须确保父类的数据成员被正确初始化。这是通过隐式调用super()来实现的,super()是子类构造器中调用父类无参构造器的语法。如果父类没有无参构造器,...
子类 --静态初始化块 "); 34. } 35. 36. // 初始化块 37. { 38. System.out.println(s_Field); 39. System.out.println(" 子类 --初始化块 "); 40. } 41. 42. // 构造器 43. public SubClass() { 44. System.out....