JAVA怎么用父类的构造方法,就是用子类调用父类的构造方法,怎么才能完成初始化??

来源:百度知道 编辑:UC知道 时间:2024/09/23 11:23:05
一个信封的类
class xinfeng
{
private String goujia,shengfen,shixian,jiedao,menpai,danwei,youbian;
xinfeng(String gj,String sf,String sx,String jd,String mp,String dw,String yb)
{
goujia=gj;
shengfen=sf;
shixian=sx;
jiedao=jd;
menpai=mp;
danwei=dw;
youbian=yb;
}
public String getyoubian()
{
return youbian;
}
public String getgoujia()
{
return goujia;
}
public String getshengfen()
{
return shengfen;
}
public String getshixian()
{
return shixian;
}
public String getjiedao()
{
return jiedao;
}
public String getmenpai()
{
return menpai;
}
public String getdanwei()
{
return danwei;
}
void setgoujia(String a)
{
goujia=a;
}
void setshengfen(String a)
{
shengfen=a;
}
void setshixian(String a

呵呵,这个其实你在编译的时候就可以知道了,因为你上面的父类中只定义了一个构造方法,
所以只要你在子类中定义一个空参数的构造,编译器就会报错:父类中并未定义这样的方法。
所以你必须重新定义一个与父同样的构造方法,而且还要在构造中加入父类的构造:
super(String,String,String,String,String,String,String,);
这样在执行子类构造方法的时候会先执行父类的构造方法,也就完成了初始化。
class guoneixinfeng extends xinfeng{
public guoneixinfeng(){
super("a","d","c","b","e","f","g");
//.......
}
//...........
}

把这个super("a","d","c","b","e","f","g");放到子类构造器中

由于构造器是不能被继承的,所以,必须在子类guoneixinfeng中的构造函数中的第一行使用super关键字,改成这样吧:
class guoneixinfeng extends xinfeng
{
guoneixinfeng(){
super("a","d","c","b","e","f","g");
}
void print()
{
System.out.println(getyoubian()+"\n\n");
} <