接口和C++中的抽象类差不多,是只能被实现但是不能在自身实现某种方法的一种结构,下面的程序是一个Interface的简单应用,功能是实现一个数组中几个数据的升序排序和求最大值,实际上排序后最后一个数组元素即为最大值,此处使用一个独立方法只为体现接口的用法,确有欠妥。 interface vir //这是一个接口,用interface关键字声明{void bigsmall(int a[]); //这里在接口里声明bigsmall和sort两个方法用来被实现它的类继承 void sort(int b[]);} class function implements vir //这是一个来实现上面的接口的类,即implements(实现)接口 {public void bigsmall(int c[]) //实现接口的第一个函数,形式必须和接口中相同并且 {int i=0,small=c[0],big=c[0]; //前面要有public关键字 for(i=1;i<c.length;i++) {if(c[i]<small)small=c[i]; if(c[i]>big)big=c[i]; } System.out.print("The smallest number is: "+small+'\n'); System.out.print("The biggest number is: "+big+'\n'); } public void sort(int c[]) //这是实现接口的第二个函数,形式与与上相同,带public关键字 {int j=0,k=0,temp=0; //程序本身及算法没有什么可说之处了 for(j=0;j<4;j++) {for(k=j+1;k<5;k++) {if(c[j]>c[k]) {temp=c[j]; c[j]=c[k]; c[k]=temp; } } } System.out.print("The sorted sequence is:"); for(j=0;j<5;j++) {System.out.print(" "+c[j]); } }} public class Jiekou //这是主类{public static void main(String args[]) //这是主方法 {vir a=new function(); //声明一个接口 int array[]=new int[]{11,71,51,10,21}; //声明一个整形数组待用 System.out.print("The original sequence is:"); for(int i=0;i<5;i++) {System.out.print(" "+array[i]); } System.out.println(); a.bigsmall(array); //此后两句类似于C++中用基类指针指向派生类对象以调用派生类方法 a.sort(array); //而这里是用接口类对象直接调用实现它的类中的方法 }}

评论