一、程序代码
package 多态;
public class Stu {
//public class Person
public String Name;
public String Birthday;
public String Province,City;
public int count;
public Stu(String name,String birthday,String province,String city,int n)
{
Name=name;Birthday=birthday;Province=province;City=city;count=n;
}
}
class Student extends Stu
{public String Major;
public int sum1,sum2,sum3;
public int Grade;
public int Number;
public int Score;
Student(String name,String birthday,String province,String city,int n,String major,int grade,int score)
{ super(name,birthday,province,city,n);
Major=major;
Grade=grade;
Score=score;
String a,b,c;
a=new String("网络工程");
b=new String("物联网");
c=new String("计算机科学与技术");
if(major.equals(a))
{Number=grade*10000+01*100+count;
}
if(major.equals(b))
{Number=grade*10000+02*100+count;
}
if(major.equals(c))
{Number=grade*10000+03*100+count;
}
}
public void searchname(String nam)
{ int i=-1;
i=Name.indexOf(nam);
if(i!=-1)
System.out.println(Name);
};
public void searchbirthday(String num)
{
int i=-1;
i=Birthday.indexOf(num);
if(i!=-1)
System.out.println(Name);
}
public void searchplace(String place)
{
int i=-1;
i=Province.indexOf(place);
if(i!=-1)
System.out.println(Name);
}
public int separate()
{
String a,b,c;
a=new String("网络工程");
b=new String("物联网");
c=new String("计算机科学与技术");
if(Major.equals(a))
{
sum1=sum1+Score;
return sum1;
}
if(Major.equals(b))
{sum2=sum2+Score;
return sum2;
}
if(Major.equals(c))
{
sum3=sum3+Score;
return sum3;
}
else return 0;
}
public static void main(String[] args)
{
System.out.println("学生1:姓名:赵一,生日:1999年1月3日,省份:山西,城市:临汾,专业:网络工程,入学年份:2017,成绩:90");
System.out.println("学生2:姓名:张二,生日:1998年05月08日,省份:山东,城市:枣庄,专业:物联网,入学年份:2017,成绩:97");
System.out.println("学生3:姓名:王三,生日:1999年07月24日,省份:青海,城市:大通,专业:网络工程,入学年份:2017,成绩:92");
System.out.println("学生4:姓名:赵四,生日:1997年08月30日,省份:重庆,城市:合川,专业:计算机科学与技术,入学年份:2017,成绩:84");
Student stud1=new Student("赵一","1999年1月3日","山西","临汾",01,"网络工程",2017,90);
Student stud2=new Student("张二","1998年05月08日","山东","枣庄",02,"物联网",2017,97);
Student stud3=new Student("王三","1999年07月24日","青海","大通",03,"网络工程",2017,92);
Student stud4=new Student("赵四","1997年08月30日","重庆","合川",04,"计算机科学与技术",2017,84);
System.out.println("赵一的学号为:"+stud1.Number);
System.out.println("张二的学号为:"+stud2.Number);
System.out.println("王三的学号为:"+stud3.Number);
System.out.println("赵四的学号为:"+stud4.Number);
System.out.print("查找姓‘赵’的学生为:");
stud1.searchname("赵");
stud2.searchname("赵");
stud3.searchname("赵");
stud4.searchname("赵");
System.out.print("查找生日为1998年05月08日的学生为:");
stud1.searchbirthday("1998年05月08日");
stud2.searchbirthday("1998年05月08日");
stud3.searchbirthday("1998年05月08日");
stud4.searchbirthday("1998年05月08日");
System.out.print("查找所在地区是山西的学生为:");
stud1.searchplace("山西");
stud2.searchplace("山西");
stud3.searchplace("山西");
stud4.searchplace("山西");
stud1.separate();
stud2.separate();
stud3.separate();
stud4.separate();
int add1=0,add2=0,add3=0;
add1=stud1.sum1+stud2.sum1+stud3.sum1+stud4.sum1;
add2=stud1.sum2+stud2.sum2+stud3.sum2+stud4.sum2;
add3=stud1.sum3+stud2.sum3+stud3.sum3+stud4.sum3;
System.out.println("网络工程班总成绩是:"+add1);
System.out.println("物联网班总成绩是:"+add2);
System.out.println("计算机科学与技术班总成绩是:"+add3);
}
}
二、实验结果

三、实验心得
1、该实验考虑的比较综合,某些方法不知道如何实现
2.对学生自动编号的实现与题意不符,需继续改进