之前学基础的时候记得继承类继承父类所有非private的变量和方法,另外Java子类实例总是默认调用父类的无参构造方法,但认识不深刻,所以这次直接自己写一个父类和子类,直接单步调试一下。
实现代码:
1 | // 父类 |
运行结果
1 | 大儿子: |
单步调试
调试断点加在:18行,22行,44行,=48行,54行,64行
总结
- 从运行结果可以看出,尽管子类并没有给
姓氏赋值,但依然打印出了姓氏:李,说明子类可以调用到父类非private的方法。 - 从GIF中的调试结果可以看出,每次子类的实例在初始化时,不论子类实例化时是否带由参数都将进入父类无参构造函数。当且仅当子类构造方法使用super()方法时,会进入父类相应的有参构造函数。
- 最后还可以从GIF中发现,非static成员变量的执行顺序在构造函数之前。