求帮助接口知识点代码

1、 实验题目要求
1、体操比赛计算选手成绩的办法是去掉一个最高分和最低分后再计算平均分,而学校考察一个班级的某科目的考试情况时,是计算全班同学的平均成绩。编写能够满足如下条件的程序:

(1)定义一个接口,包含计算平均值的抽象方法。
(2)定义一个实现上述接口的用于计算体操比赛选手成绩的类。
(3)定义一个实现上述接口的用于计算班级平均成绩的类。
(4)在主类中通过接口回调分别计算并输出体操选手和班级的成绩

2、有如图所示的接口和类的层次关系图,请编写代码实现这些接口和类,并在测试类中创建类对象,调用方法输出相应信息。(参考p151例子3)

程序代码及运行结果:

/**
* 接口
*/
public interface Base {
    double average();
}
/**
 * 体操比赛选手
 */
public class Race implements Base{
    private List<Double> list = new ArrayList<>();  //存放体操比赛选手的集合
    @Override
    public double average() {
        double aver = 0;
        for (int i = 0; i< this.list.size(); i++){
            aver += this.list.get(i);
        }
        return aver / list.size();
    }

    public List<Double> getList() {
        return list;
    }

    public void setList(List<Double> list) {
        this.list = list;
    }
}


/**
 * 班级成绩
 */
public class Classroom implements Base{
    private List<Double> list = new ArrayList<>();  //存放班级成绩的集合

    @Override
    public double average() {
        double aver = 0;
        for (int i = 0; i< this.list.size(); i++){
            aver += this.list.get(i);
        }
        return aver / list.size();
    }

    public List<Double> getList() {
        return list;
    }

    public void setList(List<Double> list) {
        this.list = list;
    }
}


import java.util.ArrayList;
import java.util.List;

/**
 * 测试类
 */
public class TestMain {
    public static void main(String[] args) {
        Race race = new Race();
        List list1 = new ArrayList();
        list1.add(9.4);
        list1.add(8.9);
        race.setList(list1);
        System.out.println("体操选手的平均成绩 : " + race.average());
        Classroom classrooom = new Classroom();
        List list2 = new ArrayList();
        list2.add(99.0);
        list2.add(98.0);
        list2.add(87.0);
        classrooom.setList(list2);
        System.out.println("班级的平均成绩 : " + classrooom.average());
    }
}


给你个参考,若对你有帮助,请采纳一下哈!

参考p151例子