1.无继承关系下,对象初始化顺序
初始化顺序: static属性/static代码块—属性/代码块—构造方法 无继承关系下 对象初始化顺序案例在这里插入代码片
2.有继承关系下,对象的初始化顺序
有继承关系,初始化顺序: 1.父类static代码块——子类static代码块 2.父类代码块——父类有参(无参)构造方法——子类代码块——子类有参(无参)构造方法(先父后子)
Car.java 父类
@Setter@Getter
public class Car {
private String car;
private String brand;
static {
System.out.println("父类static代码块");
}
{
System.out.println("父类代码块");
}
public Car(int x) {
System.out.println("父类有参构造方法");
}
public Car() {
System.out.println("父类无参构造方法");
}
}
SuperCar.java 子类
public class SuperCar extends Car {
static {
System.out.println("子类static代码块");
}
{
System.out.println("子类代码块");
}
public SuperCar(int x) {
super(x);
System.out.println("子类有参构造方法");
}
public SuperCar() {
System.out.println("子类无参构造方法");
}
}
cartest.java 测试代码
class cartest {
@Test
void test() {
Car c= new SuperCar(3);
Car ca=new SuperCar();
System.out.println(c);
System.out.println(ca);
}
}
执行结果
|