一、程序功能:通过LX3_7_P类产生子类LX3_8,其不仅具有父类的成员变量xm(姓名)、xh(学号),还定义了新成员变量xy(学院)、xi(系)。在程序中调用了父类的print方法,同时可以看...
一、程序功能:通过LX3_7_P 类产生子类LX3_8, 其不仅具有父类的成员变量xm (姓名)、xh( 学号),还定义了新成员变量xy(学院)、xi(系)。在程序中调用了父类的print 方法,同时可以看出子类也具有该方法。
下面是我想的代码:
public class LX3_7{
public static void main(String args[]){
LX3_7_p ss=new LX3_7_p("dd",34);
System.out.println(ss.print());
LX3_7_p sn=new LX3_8("aa",34,"bb","cc");
System.out.println(sn.print());
System.out.println(sn.prin());
}
}
class LX3_7_p{
String xm;
int xh;
LX3_7_p(){}
LX3_7_p(String xm,int xh)
{
this.xm=xm;
this.xh=xh;
}
String print(){
return "姓名:"+xm+"学号:"+xh;
}
}
class LX3_8 extends LX3_7_p{
String xy;
String xi;
LX3_8(String xm,int xh,String xdy,String xdi){
this.xm=xm;
this.xh=xh;
xy=xdy;
xi=xdi;
}
String prin(){
return "姓名:"+xm+"学号:"+xh+"学院:"+xy+"系:"+xi;
}
}
出错说明:
菜鸟我认为在父类LX3_7_p中既然定义了print();方法,那么LX3_8继承LX3_7_p,在子类LX3_8中的print();方法只能显示“姓名”“学号”两个变量,无法显示出“学院”“系”另外两个变量,故在子类LX3_8又定义了prin();方法,可是程序编译不能通过。
实际上我把子类LX3_8中的print();方法修改为:String print(){
return "姓名:"+xm+"学号:"+xh+"学院:"+xy+"系:"+xi;
}
再把System.out.println(sn.prin());注释,程序是对的。
可是大虾我就是想问各位高人在不修改子类print();方法的前提下,另外定义了一个prin();为什么不行,是不是引用出错了?
谢谢。
prin();前加public不顶用啊
展开