构造方法的执行过程:
*调用本类或者父类的构造方法,直至最高层(Object)
*按照声明顺序执行字段的初始化赋值
*执行构造函数的各语句
通过javaP进行反汇编看代码的执行情况。
当我们构造方法中调用其他方法会有什么问题呢?
*如果调用方法为虚方法虽然语法上来说是合理的但是会执行出我们不想要的结果。例如我们在父类中调用虚方法时可能会跑到子类中去,因为可能子类中重写了父类中的虚方法。
*因此在构造器中避免调用任何方法唯一能够安全调用的是具有final属性的方法。
构造方法的执行过程:
*调用本类或者父类的构造方法,直至最高层(Object)
*按照声明顺序执行字段的初始化赋值
*执行构造函数的各语句
通过javaP进行反汇编看代码的执行情况。
当我们构造方法中调用其他方法会有什么问题呢?
*如果调用方法为虚方法虽然语法上来说是合理的但是会执行出我们不想要的结果。例如我们在父类中调用虚方法时可能会跑到子类中去,因为可能子类中重写了父类中的虚方法。
*因此在构造器中避免调用任何方法唯一能够安全调用的是具有final属性的方法。