构造代码块
构造代码块,优先级高于构造函数,和构造函数一块执行
{
System.out.println("test代码块");
}
父类:
public class test {
static {
System.out.println("test静态代码块");
}
{
System.out.println("test代码块");
}
public test(){
System.out.println("test构造函数");
}
}
子类
public class tester extends test {
static {
System.out.println("tester静态代码块");
}
{
System.out.println("tester代码块");//构造代码块,优先级高于构造函数,和构造函数一块执行
}
public tester(){
//默认有super();自动继承父类
System.out.println("tester构造方法");
}
public static void main(String[] args) {
test er=new tester();//多态
}
}
执行结果:
分析:静态代码块优先级最高,(由于super()的原因)然后的父类的构造代码块+构造方法
最后子类。。。
test静态代码块
tester静态代码块
test代码块
test构造函数
tester代码块
tester构造方法
Process finished with exit code 0