java教程什么时候该去显式调用父类的构造函数及构造器
时间:2014-04-06 12:58 来源: 我爱IT技术网 作者:微风
java教程什么时候该去显式调用父类的构造函数?
答:子类的构造函数要做两件事,第一,把自己新增的变量需要初始化工作,第二点,父类的初始化变量的工作也要完成。当父类没有覆盖系统默认的无参数构造器的时候,子类的构造器不需要显式调用父类的构造函数。但当父类定义了带参数的构造器,而又没有保留无参数的构造器,那么就代表父类没有无参数的构造器,此时子类的构造器就要显式将调用父类的构造器。这也说明为什么最好保留一个类的无参数构造器的原因。
*注意不能在构造器中同时出现this,super调用重载构造器和父类构造器。
例子:
public class Childextends Person
{
private String name= "jimvin";
private int age;
private int weight;
private String tag= "private";
public Stringcolor;
public Child(Stringcolor){
color = color;
}
publicChild(String name, int age, int weight, String color){
this(color);// 调用重载的构造器
super(name,age,weight); // 调用父类的构造器
}
....
}
编译会报错,要求super要放在第一行,当super放在第一行,this又要求放第一行,也就是说它们不能同时出现的。
*所有java对象的创建之前都会先创建一下java.lang.Object类的构造器
*在子类的构造器中,显式调用父类的构造函数必须放置于首行
以下为错误的写法:
publicChild(String name, int age, int weight){
this.color ="yellow";
super(name,age,weight);// 必须放置于首行
}
本文来源 我爱IT技术网 http://www.52ij.com/jishu/4767.html 转载请保留链接。
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
