public class Person {
// 构造代码块
{
cry();
}
{
System.out.println("终于见到这个世界了");
}
static {
System.out.println("静态代码块");
}
public Person() {
// cry();
System.out.println("构造方法");
}
public Person(int age) {
// cry();
System.out.println("带参数构造方法");
}
public void cry() {
System.out.println("哇哇哇");
}
}
子父类关系时:
public class Person {
{
System.out.println("Person构造代码块");
}
static {
System.out.println("Person静态代码块");
}
public Person() {
System.out.println("Person构造方法");
}
}
public class Son extends Person {
{
System.out.println("Son构造代码块");
}
static {
System.out.println("Son静态代码块");
}
public Son() {
//super();
System.out.println("Son构造方法");
}
}
//测试方法
public static void main(String[] args) {
Son son = new Son();
}
Person静态代码块
Son静态代码块
Person构造代码块
Person构造方法
Son构造代码块
Son构造方法
静态代码块执行一次,构造代码块每次调用构造方法的时候都会执行。
他们的执行顺序是:静态代码块 -- 构造代码块 -- 构造方法 |