作者:zhangiloveyou | 来源:互联网 | 2023-10-11 21:21
满意答案kennychm1981推荐于2018.04.24所谓“实例化子类的对象前要先实例化父类中的内容,为父类初始化”,是指当子类正在实例化时,总是链式调用父类构造方法初始化
满意的回答
kennychm1981
推荐使用2018.04.24
在实例化子类中的对象之前实例化父类的内容并初始化父类,意味着在实例化子类时,总是通过链调用父类的构造方法来初始化父类空间也就是说,子类的构建方法必须在调用父类的构建方法后才能进行其他初始化任务。 如果子类没有显式调用语句,编译器会隐式添加它。
例如:
public class a { publica { } { } publicclassbextendsa { publicb { } }等效于:
公共类a { publica (} { super ); //这里实际上是Object (; //其他初始化工作} } publicclassbextendsa { publicb (} { super ); //这里其实是a (); //其他初始化工作}}此外,在这种情况下:
公共类a { x x=new x (; public A () }Publicclassbextendsa ) yy=newy ); public B ()//这是a类空间中的字段已初始化。 }在分配成员y之前,x始终存在。 即,X x=new X (; 一定要Y y=new Y (); 点击
013共享举报