📄 polymorphism.java
字号:
/*
* Polymorphism.java
*
* Created on 2007年6月6日, 下午7:08
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
/**
*
* @author jgfd
*/
abstract class Student {
final static int CourseNo=3;
String name;
String type;
int [] courses;
String courseGrade;
/** Creates a new instance of Student */
public Student() {
}
public Student(String name){
this.name=name;
courses=new int[CourseNo];
courseGrade=" "; //代码1初始化courseGrade为空串
}
public abstract void calculateGrade();
public String getName(){
return name;
}
public String getType(){
return type; //代码2返回学生类型
}
public String getCourseGrade(){
return courseGrade;
}
public int getCourseScore(int courseNumber){
return courses[courseNumber];
}
public void setName(String name){
this.name=name;
}
public void setType(String type){
this.type=type;
}
public void setCourseScore(int courseNumber,int courseScore){
courses[courseNumber]=courseScore; //代码3按课程索引号设置课程成绩
}
}
class Undergraduate extends Student {
/** Creates a new instance of Undergraduate */
public Undergraduate() {
}
public Undergraduate(String name) {
super(name);
type="本科生";
}
public void calculateGrade() {
int total=0;
double average=0;
for(int i=0;i<CourseNo;i++)
total+=courses[i]; //代码4累加各门课程成绩
average=total/CourseNo;
if(average>=80&&average<100)courseGrade="优秀";
else if(average>=70&&average<80)courseGrade="良好";
else if(average>=60&&average<70)courseGrade="一般";
else if(average>=50&&average<60)courseGrade="及格";
else courseGrade="不及格";
}
}
class Postgraduate extends Student {
/** Creates a new instance of Postgraduate */
public Postgraduate() {
}
public Postgraduate(String name) {
super(name);
type="研究生";
}
public void calculateGrade() {
int total=0;
double average=0;
for(int i=0;i<CourseNo;i++)
total+=courses[i];
average=total/CourseNo;
if(average>=90&&average<100)courseGrade="优秀";
else if(average>=80&&average<90)courseGrade="良好";
else if(average>=70&&average<80)courseGrade="一般";
else if(average>=60&&average<70)courseGrade="及格";
else courseGrade="不及格";
}
}
class Highstudent extends Student {
/** Creates a new instance of Postgraduate */
public Highstudent() {
}
public Highstudent(String name) {
super(name);
type="高中生";
}
public void calculateGrade() {
int total=0;
double average=0;
for(int i=0;i<CourseNo;i++)
total+=courses[i];
average=total/CourseNo;
if(average>=80&&average<=100)courseGrade="好";
else if(average>=60&&average<80)courseGrade="中";
else if(average<60)courseGrade="差";
}
}
public class Polymorphism {
/** Creates a new instance of Polymorphism */
public Polymorphism() {
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
Student students[]=new Student[6];
students[0]=new Undergraduate("陈建平");
students[1]=new Undergraduate("鲁向东");
students[2]=new Postgraduate("匡晓东");
students[3]=new Undergraduate("周丽娜");
students[4]=new Postgraduate("梁欣欣");//代码5创建姓名为梁欣欣的Postgraduate对象students[4]
students[5]=new Highstudent("莫漠");
for(int i=0;i<6;i++){
students[i].setCourseScore(0,87);
students[i].setCourseScore(1,90);
students[i].setCourseScore(2,78);
}
for(int i=0;i<6;i++)
students[i].calculateGrade();
System.out.println("姓名"+" 类型"+" 成绩");
System.out.println("-------------------------");
for(int i=0;i<6;i++)
System.out.println(students[i].getName()+" "+students[i].getType()+" "+students[i].getCourseGrade());
// TODO code application logic here
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -