静态代码块的执行顺序:
1、父类的静态代码块
2、子类的静态代码块
3、父类的构造函数
4、子类的构造函数
需要注意的地方:
子类构造函数中(不管是有参还是无参的情况)默认调用的是父类的无参数构造函数,如果父类没有无参构造函数,则子类构造函数中必须显示调用父类的构造函数。
如父类public Parent(String name){}
此时,子类中应该是这样调用public Child(String str){super(str);}
如父类public Parent()无参型的
此时,子类中应该这样调用public Child(String str){super();//也可以不写,默认的就是会调用super();}
例子:
java 代码
- package com.test;
-
-
-
-
-
-
-
-
-
- public class OrderTest {
-
- public static void main(String[] args) {
-
- new Child();
-
- }
- }
-
- class Parent
- {
- private static String name;
- static
- {
- System.out.println("parent static block");
- }
-
- public Parent()
- {
- System.out.println("parent constructor content");
- }
- }
-
- class Child extends Parent
- {
- static
- {
- System.out.println("child static block");
- }
-
- public Child()
- {
- System.out.println("child constructor content");
- }
- }
分享到:
相关推荐
1. **静态代码块执行**:首先是类的静态部分,因此`ClassA`和`B`的静态代码块会按照它们在代码中出现的顺序依次执行。在这个例子中,我们首先看到"静态代码块B",然后是"静态代码块A",因为`B`类在`ClassA`类之前...
静态块(`static`)是在类定义中包含的一段特殊的代码块,它在类加载时执行,而不是在对象创建时执行。静态块常用于初始化静态变量或执行一次性的初始化操作。 ### 继承中构造函数与静态块的执行顺序 在Java中,当...
本文将深度剖析几个常见的Java面试题目,包括方法重写、静态代码块和构造方法的执行顺序。 首先,我们来讨论**方法重写(Override)**。在面向对象编程中,子类可以继承父类的属性和方法,有时需要根据自己的需求对...
在继承关系中,静态代码块的执行顺序是:父类静态代码块 -> 子类静态代码块 -> 父类非静态代码块 -> 父类构造方法 -> 子类非静态代码块 -> 子类构造方法。 静态代码块和静态方法的区别在于:静态代码块是自动执行的...
静态代码块的执行顺序取决于类的加载顺序,通常是在类的加载过程中执行。 在上面的实例代码中,我们可以看到一个静态代码块 `static { ... }`,这个代码块位于 `User` 类的静态域中。根据 Java 语言规范,这个代码...
- 如果父类中有静态代码块,那么在创建子类对象时,父类的静态代码块会先于子类的静态代码块执行。 - 在子类中,如果想要调用父类的构造函数或其他方法,可以使用`super()`关键字。 以上就是关于Java中静态代码块的...
这两个静态代码块是在类加载时自动执行的,它们的执行顺序是按照它们在类中的声明顺序来的。 非静态代码块 非静态代码块是 Java 中的一种特殊的代码块,它是非静态的,意思是说它是属于对象的,而不是属于类的。非...
1 静态变量,静态代码块(类加载时执行,类不加载不执行) 2 实例变量,实例代码块(创建对象时才执行,不创建对象不执行) 3 构造函数,(创建对象时执行完2后再执行构造函数,不管构造函数是public还是private...
Android代码块执行顺序分析总结 Android代码块执行顺序是指在Java中,代码块、变量、方法的加载顺序是一个重要的知识点,对于Android开发者来说尤其重要。本文将详细介绍Android代码块执行顺序的分析总结。 一、...
静态代码块的执行顺序: 1. 静态代码块的执行优先于静态变量的初始化。 2. 静态代码块的执行优先于静态方法的调用。 静态代码块的应用场景: 1. 初始化静态变量:静态代码块可以用来初始化静态变量。 2. 执行静态...
在Java编程语言中,了解静态代码块和构造方法的执行顺序是至关重要的,尤其是在处理类的初始化和对象的创建时。下面将详细解释这些概念及其执行逻辑。 首先,静态代码块(也称为静态初始化器)是由`static`关键字...
先静态代码块,然后构造代码块,再是构造方法,然后方法里面的代码块按顺序执行。 子类继承父类的时候,先执行父类的静态代码块,然后子类的静态代码块,然后父类的构造代码块和构造方法,再是子类的构造代码块和...
Java编程语言中有三种类型的代码块,它们分别是普通代码块、构造代码块和静态代码块,每种都有其特定的用途和执行顺序。 1. **普通代码块**: 普通代码块(也称为局部代码块)是在方法或者类的成员变量声明之间...
2. **静态代码块与静态变量的初始化**:在类加载时,静态代码块和静态变量会被初始化,它们的执行顺序取决于它们在代码中的出现顺序,而不是它们的定义顺序。这意味着,如果一个类中包含了多个静态代码块或静态变量...
- 对象创建:非静态代码块执行,然后是对应的构造方法。 6. **应用场景:** 静态代码块常用于初始化静态数据结构,配置类,或者一次性执行的设置操作,如日志配置、数据库连接池初始化等。 总之,Java中的静态...
System.out.println("静态代码块执行"); // 初始化静态变量 } } ``` 2. 构造器代码块: 构造器代码块,也称为初始化块,不包含`static`关键字。每当创建一个类的新实例时,这些代码块就会被执行。它们可以与构造...
在Java中,静态代码块的执行顺序是:静态成员变量 -> 静态代码块 -> 变量、初始化块 -> 构造函数。静态代码块永远只被加载一次,这使得它非常适合用于加载配置文件、初始化操作等。 在本文中,我们通过示例代码详细...
在上面的代码中,静态代码块从上到下依次执行,接着是 main 方法,最后是构造块和构造器。 Java 中的代码块有三种:普通语句块、构造块和静态块,每种代码块的执行时机不同,需要根据实际情况选择合适的代码块类型...