为什么代码是错的呀,该怎么去修改它才可以运行出结果?
public class TestApp38 {
public static void main(String[] args) {
Student38[] students=new Student38[4] ;
students[0]=new Student38("1001","张三",60);
students[1]=new Undergraduate38("1002","李四",90,20);
students[2]=new Undergraduate38("1003","王五",80,50);
students[3]=new Foreign38("1004","赵六",70,30,"Pakistan");
for(Student38 student : students){
System.out.println(student);
}
}
}
public static class Student38 {
private String clsNum;
private String name;
private int avgscore;
private int xuefen;
private String country;
public Student38(){
}
public Student38(String clsNum,String name,int avgscore,int xuefen,String country){
this.clsNum=clsNum;
this.name=name;
this.avgscore=avgscore;
this.xuefen=xuefen;
this.country=country;
}
public String getClsNum() {
return clsNum;
}
public String getName() {
return name;
}
public int getAvgscore() {
return avgscore;
}
public int getXuefen() {
return xuefen;
}
public String getCountry() {
return country;
}
public String show(){
return ("clsNum="+clsNum+" name="+name+" avgscore="+avgscore+" xuefen"+xuefen+" country="+country);
}
}
public static class Undergraduate38 extends Student38 {
private String Specialty;
Undergraduate38(){
}
Undergraduate38(String clsNum,String name,int avgscore,int xuefen,String coutry,String Specialty){
super(clsNum,name,avgscore,xuefen,country);
this.Specialty=Specialty;
}
public String getSpecialty(){
return Specialty;
}
public String show(){
return(super.show()+"Specialty="+Specialty);
}
}
public static class Foreign38 extends Student38 {
private String direction;
Foreign38(){
}
Foreign38(String clsNum,String name,int avgscore,int xuefen,String country,String direction){
super(clsNum, name, avgscore, xuefen, country);
this.direction=direction;
}
public String getDirection(){
return direction;
}
public String show(){
return (super.show()+" direction="+direction);
}
}
}