一、父子类中都是static代码块:
class Parent{ static{ System.out.println(1); } public Parent(){ System.out.println("Parent"); } } class Son extends Parent{ static{ System.out.println(2); } public Son(){ System.out.println("Son"); } } public class Test { public static void main(String[] args) { Parent p = new Son(); //或Son p = new Son(); } } 输出: 1 2 Parent Son
二、父子类中都是普通代码块
class Parent { { System.out.println(1); } public Parent() { System.out.println("Parent"); } } class Son extends Parent { { System.out.println(2); } public Son() { System.out.println("Son"); } } public class Test { public static void main(String[] args) { Parent p = new Son(); //或Son p = new Son(); } } 输出: 1 Parent 2 Son
三、父类普通代码块,子类static代码块
class Parent { { System.out.println(1); } public Parent() { System.out.println("Parent"); } } class Son extends Parent { static { System.out.println(2); } public Son() { System.out.println("Son"); } } public class Test { public static void main(String[] args) { Parent p = new Son(); //或 Son p = new Son(); } } 输出: 2 1 Parent Son
四、父类static代码块,子类普通代码块
class Parent { static{ System.out.println(1); } public Parent() { System.out.println("Parent"); } } class Son extends Parent { { System.out.println(2); } public Son() { System.out.println("Son"); } } public class Test { public static void main(String[] args) { Parent p = new Son(); //或 Son p = new Son(); } } 输出: 1 Parent 2 Son
相关推荐
这里我们将深入探讨Java中的普通代码块(实例初始化块)和静态代码块的执行顺序,并通过实例来阐述这一概念。 首先,我们需要明白两种类型的代码块: 1. 静态代码块(Static Block):这些代码块在类加载时执行,...
在继承关系中,静态代码块的执行顺序是:父类静态代码块 -> 子类静态代码块 -> 父类非静态代码块 -> 父类构造方法 -> 子类非静态代码块 -> 子类构造方法。 静态代码块和静态方法的区别在于:静态代码块是自动执行的...
本文将深度剖析几个常见的Java面试题目,包括方法重写、静态代码块和构造方法的执行顺序。 首先,我们来讨论**方法重写(Override)**。在面向对象编程中,子类可以继承父类的属性和方法,有时需要根据自己的需求对...
这种执行顺序体现了Java中静态代码块和实例代码块的执行规则: - 类的静态代码块会在任何实例被创建之前执行,并且只执行一次。 - 子类继承父类时,父类的静态代码块会在子类的静态代码块之前执行。 - 每个类的静态...
静态块(`static`)是在类定义中包含的一段特殊的代码块,它在类加载时执行,而不是在对象创建时执行。静态块常用于初始化静态变量或执行一次性的初始化操作。 ### 继承中构造函数与静态块的执行顺序 在Java中,当...
Java面向对象编程中的类成员之一是代码块,这部分内容主要探讨了Java中代码块的概念、分类、用途以及执行时机。代码块在Java中扮演着初始化类或对象成员变量的角色,特别是在需要复杂计算或获取外部信息来设定初始值...
1. **初始化阶段**:首先执行的是类`X`中的`static`代码块,输出"tttt"。这是因为`static`代码块会在类加载时执行,而类加载是先于任何对象创建的。 2. **创建Z实例**:之后执行`main()`方法,在`main()`方法中...
在多级继承关系中,静态代码块按照类的加载顺序执行,先加载的类先执行其静态代码块。 例如,在给定的代码中: ```java public class A { static { System.out.print(1); } public A() { System.out.print(2)...
1. 当创建一个类的实例时,首先会执行类中的静态属性和静态代码块,按照它们在代码中出现的顺序进行。 2. 然后执行非静态属性和非静态代码块。 3. 最后,调用构造函数来完成对象的初始化。 在没有继承关系的情况下...
static 语句块,可以有多个,位置可以随意放,它不在任何的方法体内,JVM 加载类时会执行这些静态代码块,是该类中最先被执行的代码,如果有多个静态代码块,会按照它们在类中出现的先后顺序执行它们,每个静态代码...
Java程序设计实验11主要关注四个核心概念:`static`、`super`、`final`以及代码块。这些是Java编程中的基础但至关重要的元素,理解它们有助于编写更有效、更具可维护性的代码。 1. **`static`关键字**: - `static...
实例块是类中不包含`static`关键字的代码块,它在创建类的新实例时执行,用于初始化实例变量。每次创建类的新实例时,都会执行实例块。 ```java public class Parent { { System.out.println("Parent instance ...
本篇文章将围绕“类继承的初始化顺序”这一主题展开,详细解析初始化过程中涉及的关键概念和技术细节。 ### 类继承的初始化顺序概述 在面向对象语言中(如Java、C#等),当创建一个继承自某个基类的子类对象时,会...
static代码块的加载时间是在类加载时执行的,而不是在实例化对象时执行的。 继承类中构造器的隐式调用 在上面的例子中,SubClass的构造器中会隐式的调用父类的构造器。这是因为在Java中,子类的构造器会隐式的调用...
在Java编程语言中,`final`与`static`是两个非常关键且常用的关键字,它们各自具有独特的功能和用途,可以极大地增强代码的稳定性和可维护性。下面将详细解析这两个关键字的用法及其在Java中的重要性。 ### 一、`...
在Java编程语言中,类的初始化过程涉及到几个关键的概念,包括静态代码块、构造代码块和构造方法。这些概念在创建对象和管理类的状态时起着至关重要的作用。以下是关于这三个概念的详细解释: 1. **静态代码块**: ...
同时,如果类之间存在继承关系,子类的静态块会在父类的静态块之后执行。 总之,静态块是Java中一个重要的概念,它提供了一种在类加载时初始化静态变量的机制,常用于设置全局配置或进行一次性操作。正确理解和使用...
本文将详细探讨Java中类的初始化过程及其顺序,并通过具体的代码示例来帮助理解这一过程。 #### 二、基础知识 1. **静态成员变量(Static Fields)**:在类加载时初始化。 2. **实例成员变量(Instance Fields)**...
5. **继承关系**:子类会继承父类的静态初始化块,但不会重复执行。父类的静态初始化块只在父类加载时执行一次。 6. **使用场景**:常用于设置静态变量的初始值,创建静态对象,或者执行一次性的系统设置操作。 在...