类和对象的初始化顺序
父类
packagecom.day06;publicclassStaticDemo {//静态代码块intnum=3;static{
System.out.PRintln("父类静态代码块 --A");
}//构造代码块{
System.out.println("父类构造代码块 ---A "+this.num);
}publicStaticDemo(){
System.out.println("父类构造方法---A");
}publicvoidshow(){
System.out.println("父类普通方法--- A");
}
}
子类:
packagecom.day06;publicclassStaticDemoBextendsStaticDemo {//静态代码块intnum=3;static{
System.out.println("子类静态代码块 B");
}//构造代码块{
System.out.println("子类构造代码块 B "+this.num);
}publicStaticDemoB(){
System.out.println("子类构造方法 B");
}publicvoidshow(){
System.out.println("子类普通方法 B");
}
}
示例一:实例化父类
packagecom.day06;publicclassStaticDemoTest {publicstaticvoidmain(String[] args) {//new StaticDemo().show();StaticDemo sd=newStaticDemo();
sd.show();
}
}
结果:
父类静态代码块 --A
父类构造代码块---A 3父类构造方法---A
父类普通方法--- A
示例二、实例化子类
packagecom.day06;publicclassStaticDemoTest {publicstaticvoidmain(String[] args) {//new StaticDemoB().show();StaticDemoB sdb=newStaticDemoB();
sdb.show();
}
}
结果:
父类静态代码块 --A
子类静态代码块 B
父类构造代码块---A 3父类构造方法---A
子类构造代码块 B3子类构造方法 B
子类普通方法 B