`
reallyafei
  • 浏览: 97256 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Java子类构造的执行顺序

    博客分类:
  • Java
阅读更多

Java子类构造的完整执行顺序

 

package test;

public class Test {
	public static void main(String[] args) {
		new Son();
	}
	
	public static void print(String msg) {
		System.out.println(msg);
	}
	
	public static int getInt(String name) {
		print("static member " + name);
		return 0;
	}
	
	public static String getString(String name) {
		print("nonstatic member " + name);
		return "";
	}

	static class Parent {
		Parent() {
			print("constructor parent");
		}
		
		static {
			print("static block parent");
		}
		
		{
			print("nonstatic block parent");
		}
		
		String str = getString("parent");
		
		static int i = getInt("parent");
	}

	static class Son extends Parent {	
		Son() {
			print("constructor son");
		}
		
		static {
			print("static block son");
		}
		
		{
			print("nonstatic block son");
		}
		
		String str = getString("son");
		
		static int i = getInt("son");
	}
}


 

 最后输出结果为:

static block parent
static member parent
static block son
static member son
nonstatic block parent
nonstatic member parent
constructor parent
nonstatic block son
nonstatic member son
constructor son
 这个说明了Java类的执行顺序为:

父类的静态块--->父类的静态成员--->子类的静态块--->子类的静态成员--->父类的非静态块--->父类的非静态成员--->

父类的构造函数--->子类的非静态块--->子类的非静态成员--->子类的构造函数

0
0
分享到:
评论

相关推荐

    java 静态非静态 字段方法 子类父类构造_初始化顺序!

    java 静态_非静态 字段_方法_代码块 子类父类构造_初始化顺序! 三个class 让你清清楚楚 第一个class java代码如下: package initialOrder; class Parent { // 静态变量 public static String p_StaticField...

    java面试题静态加载顺序构造方法

    Java中的继承与静态static等的执行先后顺序的面试题 java面试题静态加载顺序构造方法 继承与static 面试题目如下:请写出程序执行完成之后的结果。 package extend; public class X { Y y=new Y(); ...

    由浅入深详解Java 类的实例化顺序

    子类的静态变量和静态代码块,按代码先后顺序执行 3. 父类的成员变量和普通代码块,按代码先后顺序执行 4. 父类的构造方法 5. 子类的成员变量和普通代码块,按代码先后顺序执行 6. 子类的构造方法 其中,静态...

    java继承与多态教学及练习

    1继承的概念 2继承的实现 3变量隐藏与方法覆盖 4super关键字 5 子类的构造顺序 6Object类 7 final关键字

    Java开发技术大全(500个源代码).

    showOrder_1.java 演示操作数求值顺序示例1 showOrder_2.java 演示操作数求值顺序示例2 sign.java 用条件运算实现符号函数示例 signByIF.java 用if语句实现符号函数示例 triangleStar.java 输出一个由*组成的...

    字节跳动、腾讯java面试.zip

    讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字段,当 new 的时候,他们的执行顺序。 是什么,他们内部原理分别是什么,比如存储方式,hashcode,扩容,默认容量等。 JAVA8 的 ...

    Java 基础核心总结 +经典算法大全.rar

    Java 执行控制流程条件语句 if 条件语句 if...else 条件语句if...else if 多分支语句switch 多分支语句 循环语句 while 循环语句do...while 循环for 循环语句 跳转语句 break 语句 continue 语句面向对象 类也是-种...

    Java 语言基础 —— 非常符合中国人习惯的Java基础教程手册

    生成对象的最后一步是执行构造方法,进行初始化。由于对构造方法可以进行重写 ,所以通过给出不同个数或类型的参数会分别调用不同的构造方法。 例子:以类 Rectangle 为例,我们生成类 Rectangle 的对象: Rectangle p1...

    java中文版API1.6

    对于给定的类或接口 A,其“使用”页面包含 A 的子类、声明为 A 的字段、返回 A 的方法,以及带有类型为 A 的参数的方法和构造方法。访问此页面的方法是:首先转至软件包、类或接口,然后单击导航栏中的“使用”链接...

    java 基础 类对象创建实例化过程 实例解析

    继承关系:类的实例化顺序 * 执行过程为:启动类是否为继承关系树中的一个,如果是则先执行启动类的所有父类的静态语句块;然后执行启动类的静态语句块static{} -> * 执行启动类的main函数 -> 创建对象的继承树从...

    Java面试题总览

    JAVA面试题总览, 包含如下: 1. JAVA中的几种基本数据类型是什么,各自占用多少字节。...5. 讲讲类的实例化顺序,比如父类静态数据,构造函数,字段,子类静态数据,构造函数,字 段,当new的时候,他们的执行顺序。

    java基础.txt

    重载overload的特征:在同一个类中同一个方法名,参数列表不同(个数,顺序,类型) this:关键字,对本类对象的引用,可以调用本类的属性和方法 this(); 对本类对象构造的调用,如果有参则调用有参构造 而且...

    JAVA复习资料

    20、 一个Java Application源程序文件名为MyJavaApplication.java,如果使用Sun公司的Java开发工具JDK编译该源程序文件并使用其虚拟机运算这个程序的字节码文件,应该顺序执行如下两个命令: javac ...

    java面试800题

    7.在java中尽量使用preparestatement执行sql,从而共享执行计划" Q0032 Oracle的集合操作函数,如sum(),avg(),max(),min(),与select,where,grouby,having的先后顺序,使用方法 Oracle集合查询基本知识,只有进行...

    Java2实用教程.rar

    4 2 6构造方法 4 2 7类方法和实例方法 4 2 8值得注意的问题 4 3对象 4 3 1创建对象 4 3 2使用对象 4 3 3于象的引用和实体 4 3 4参数传值 4 4static关键字 4 4 1实例变量和类变量的区别 4 4 2实例方法和类方法的区别 ...

    JAVA入门1.2.3:一个老鸟的JAVA学习心得 PART1(共3个)

    4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 if语句的嵌套 71 4.2.3 if-else语句 73 4.2.4 if-else语句嵌套 75 4.3 使用while进行循环 76 4.3.1 使用while语句 76 4.3.2 使用...

    java初学者必看

    最近正在学习Java,也买了很多的有关Java方面的书籍,其中发现《跟我学Java》这本书,都的很不错啊,所以顺便拿电脑把这本书的目录敲了下来,与大家分享。尤其是那些和我一样初学Java的朋友们,看看哪一节对你有用,...

    疯狂JAVA讲义

    学生提问:构造器是创建Java对象的途径,是不是说构造器完全负责创建Java对象? 141 5.5.2 构造器的重载 142 学生提问:为什么要用this来调用另一个重载的构造器?我把另一个构造器里的代码复制、粘贴到这个构造器...

    Java入门1·2·3:一个老鸟的Java学习心得.PART3(共3个)

    4.1 顺序执行 67 4.2 使用if-else让程序懂得判断 68 4.2.1 if语句 68 4.2.2 if语句的嵌套 71 4.2.3 if-else语句 73 4.2.4 if-else语句嵌套 75 4.3 使用while进行循环 76 4.3.1 使用while语句 76 4.3.2 使用...

    JAVA基础课程讲义

    try, catch,finally ,return 执行顺序 100 异常的处理办法之二,声明异常: throws子句 101 方法重写中声明异常原则 102 异常的处理办法之三,手动抛出异常,throw子句 103 自定义异常 103 使用异常机制建议 104 ...

Global site tag (gtag.js) - Google Analytics