本帖最后由 Aron 于 2014-6-24 18:05 编辑
- public class Test extends A {
- Test(){
- super();
- System.out.println("test");
- }
- {
- System.out.println("xixi");
- }
- public static void main(String[] args){
- A t = new Test();
- }
- }
- class A{
- A(){
- System.out.println("AA");
- }
- }
复制代码 首先先说明我知道父类对象的一个引用指向子类对象会先访问父类 这个是由于子类构造方法中有一句隐式的super()语句
我想问的是构造代码块按理说不是会先于构造方法执行 但是确在访问父类super()后才执行 也就是说实际上是在super()访问父类过后才会去执行构造代码块 然后再执行构造方法中下面的语句
也就是执行顺序是(对于我写的程序来讲的执行顺序):新建对象访问test()构造方法然后执行super(),访问父类后在回来查找构造代码块如果有执行它,之后在执行super下面的语句
对不对
希望大家不要说什么父类 与 子类中这样那样的执行顺序 我都明白 我只是想确认我这个想法对不对
说明下你们的解释 谢谢了
|