class Parent {
Parent() {//程序执行的第二步
System.out.println("parent");
}
}
public class Child extends Parent {
Child(String s) {//程序执行的第三步
System.out.println(s);
}
public static void main(String[] args) {
Child child = new Child("child");//程序执行的第一步
}
}
//
/*
* 为什么会打印出来parent 这就是程序的执行顺序问题了 java虚拟机在加载类Child时 ,
* 先加载Parent的构造函数,然后再加载Child的静态代码块和构造函数(你的子类没有静态代码块,)
* 所以运行程序的时候先执行了父类的构造函数 打印了parent,然后执行子类的构造函数打印s,
*
* 如果只想打印child 那你的Perent(父类)类的构造函数改成默认或为空,就是删除 System.out.println("parent");这句话
*
* 有问题可以继续问 加油!
*/
|