掘友等级
获得徽章 0
java的父类的构造器中应该避免调用被子类重写过的方法,会导致代码出现子类实例化的对象值拿不到,从而引发bug,这个也算是破坏结构化的行为。如果子类继承了父类,最好在构造器里面用super(显式继承)
子类构造器实例化时如果没有super,也没有this调用。super和this需要在构造器里面的第一行,系统在在执行子类构造器之前,隐式调用父类无参数的构造器。子类内通过this调用自身的另外一个构造器,this里面根据实际情况传递参数。第一条会隐式调用还真不知道。
代码的线性取决于,取决于在虚拟机或者内存里的顺序。比如类加载会先加载构造函数,也对方法区的类变量进行声明,等构造函数加载结束后才把声明的静态对象赋值。所以一旦在构造函数里面需要载入数据计算,需要确保值被载入了。