⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 polymorphism.java

📁 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 + -