Java类中静态代码块、构造代码块、构造函数快速理解
2014-05-09 23:08
253 查看
package com.test; public class Son extends Father{ static{ System.out.println("Son:静态代码块"); } { System.out.println("Son:构造代码块"); } public Son(){ System.out.println("Son:构造函数"); } public Son(String s){ super(s); System.out.println("Son:构造函数" + s); } public static void main(String[] args) { System.out.println(); Father fa = new Son("Son"); } }
package com.test;
public class Father {
static{
System.out.println("Father:静态代码块");
}
{
System.out.println("Father:构造代码块");
}
public Father(){
System.out.println("Father:构造函数");
}
public Father(String s){
System.out.println("Father:构造函数" + s);
}
}
输出结果:
Father:静态代码块
Son:静态代码块
Father:构造代码块
Father:构造函数Son
Son:构造代码块
Son:构造函数Son
得出结论:
1、执行顺序:静态代码块>构造代码块>构造函数。
2、静态代码块随类的声明而执行,而构造代码块和构造函数在一个类实例化后执行,其中构造代码块又优先于构造函数代码块。
3、子类没有用super(s)时,默认调用的是父类的无参构造函数块。
相关文章推荐
- java类中静态代码块、构造代码块、构造函数快速理解
- 黑马程序员——Java基础---面向对象(面向对象,类,对象,匿名对象,封装,构造函数,构造代码块,this,static,main,帮助文档,静态代码块,单例)
- Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序
- Java 构造函数、构造代码、静态代码块
- 静态代码块,构造代码块与构造函数
- 静态代码块,构造代码块,构造函数之间的差别及先后执行顺序
- 5.1JAVA基础复习——JAVA中的静态代码块、构造代码块、构造函数、局部代码块区别
- 【面相对象】静态代码块、构造代码块和构造函数的执行顺序
- Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序
- 静态代码块,构造代码块与构造函数
- 当包含 静态代码块 构造代码块 构造函数 运行先后顺序
- java类加载和实例化:静态代码块、初始化代码块、构造方法的执行顺序
- java中的静态代码块、构造代码块、构造函数执行顺序
- Java提高篇——静态代码块、构造代码块、构造函数以及Java类初始化顺序
- 静态代码块,构造代码块与构造函数
- 静态代码块,构造代码块与构造函数
- 构造函数以及构造代码块的理解
- 静态代码块、构造代码块和构造函数执行顺序
- 静态代码块、构造代码块以及构造函数的加载顺序
- Java中普通代码块,构造代码块,构造函数,静态代码块区别