问答详情
源自:9-4 Java 中的继承初始化顺序

普通方法、普通方法的初始化和普通初始化块,三者相同吗?

普通方法、普通方法的初始化和普通初始化块,三者相同吗?前面讲的执行顺序:静态初始化块>普通初始化块>构造方法,那么是不是普通方法的执行顺序也大于构造方法的执行顺序?如果是,在视频中,为什么子类构造方法先执行,而子类继承父类的普通方法“动物具有吃东西的能力”最后执行?

提问者:,_0034 2016-04-16 10:48

个回答

  • Mirwangsir
    2016-04-16 11:17:22
    已采纳

    代码执行顺序:static代码块--> 构造方法 --> 普通方法

  • sonicgyq
    2016-04-16 11:06:33

    (1) 在一个不存在继承的类中:初始化static变量,执行static初始化快-->初始化普通成员变量(如果有赋值语句),执行普通初始化块-->构造方法

      (2)在一个存在继承的类中:初始化父类static成员变量,运行父类static初始化块-->初始化子类static成员变量,运行子类static初始化块-->初始化父类实例成员变量(如果有赋值语句),执行父类普通初始化块-->父类构造方法-->初始化子类实例成员变量(如果有赋值语句)及普通初始化块-->子类构造方法。