public class Parent {
public Parent(){
System.out.println("Parent无参!!!");
}
static Parent p = new Parent().test();
public Parent test(){
System.out.println("Parent test()~~~");
return null;
}
static {
System.out.println("Parent静态代码块");
}
{
System.out.println("Parent普通代码块");
}
}
public class Sub extends Parent {
public Sub(){
// super(); //写了this()调用子类的构造方法,则不能写super(),注意:只是不能不能重写而已,但是他还是存在的!!!
// this(); //不能回调自己的方法
this(1);
this.subTest();
System.out.println("Sub无参!!!");
}
public Sub(int i){
System.out.println("Sub有参~~~ i="+i);
}
public void subTest(){
System.out.println("subTest...");
}
static{
System.out.println("Sub静态代码块");
}
{
System.out.println("Sub普通代码块");
}
public static void main(String[] args){
Sub s = new Sub();
}
}
打印结果:
Parent普通代码块
Parent无参!!!
Parent test()~~~
Parent静态代码块
Sub静态代码块
Parent普通代码块
Parent无参!!!
Sub普通代码块
Sub有参~~~ i=1
subTest...
Sub无参!!!