要点:
接口产生的多态是指不同类在实现同一个接口的时候有不同的实现方式,那么接口变量在回调接口方法时就可以产生多种形态。
代码:
ComputerAverage.java
- public interface ComputerAverage {
- public abstract double averge(double ...x);
- }
Gymnastics.java
- public class Gymnastics implements ComputerAverage{
- @Override
- public double averge(double... x) {
- int count=x.length;
- double aver=0,temp=0;
- for(int i=0;i<count;i++){//使得从小到大排列
- for(int j=0;j<count;j++){
- if(x[j]<x[i]){
- temp=x[j];
- x[j]=x[i];
- x[i]=temp;
- }
- }
- }
- //求得去掉最高分和最低分后的平均分
- for(int i=1;i<count-1;i++){//必须重新声明一个i
- aver=aver+x[i];
- }
- if(count>2){
- aver=aver/(count-2);
- }
- else
- aver=0;
- return aver;
- }
- }
School.java
- </pre><pre name="code" class="java">public class School implements ComputerAverage{
- @Override
- public double averge(double... x) {
- int count=x.length;
- double aver=0;
- for(double param:x){//计算全班级总分
- aver=aver+param;
- }
- aver=aver/count;//计算平均分
- return aver;
- }
- }
Test.java
- public class Test {
- public static void main(String[]args){
- ComputerAverage computer;
- computer=new Gymnastics();
- double result=computer.averge(9.87,9.76,9.99,9.12,9.67,9.73);
- System.out.printf("体操选手最后得分是%5.3f\n",result);//后面输出有要求时用printf,在输出括号最后加\n
- computer=new School();
- result=computer.averge(65,89,76,56,88,90,98,46);
- System.out.println("班级考试平均分数"+result);
- }
- }
运行结果: