6.2 实现接口

来源:互联网 发布:四旋翼控制算法概述 编辑:程序博客网 时间:2024/06/05 07:30

6.2 实现接口


6.2.1 实现接口

Java语言中,接口由类来实现以便使用接口中的方法

//1.类实现接口class A implement 接口1,接口2,接口3{···}
//2.类的子类实现接口class B extends class A implement 接口1,接口2,接口3{···}

6.2.2重写接口中的方法

(1)一个非抽象类实现了某个接口,这个类必须重写这个接口中的所有方法

(2)非抽象类在重写接口方法的时候需要去掉abstract修饰符,给出方法体,方法访问权限一定要明显的用public修饰

(3)用户也可以自定义接口,一个Java源文件可以由类和接口组成

//例子:public interface Example6_1_Computable {int MAX = 50;int f(int x);}public class Example6_1_China implements Example6_1_Computable {int numner;@Overridepublic int f(int x) {// TODO Auto-generated method stubint sum = 0;for (int i = 1; i < x; i++) {   //重写接口的方法sum = sum + i;}return sum;}}public class Example6_1_Japan implements Example6_1_Computable {int number;@Overridepublic int f(int x) {return MAX + x; //直接使用接口的常量}}public class Example6_1 {public static void main(String[] args) {// TODO Auto-generated method stubExample6_1_China china;Example6_1_Japan japan;china =new Example6_1_China();japan=new Example6_1_Japan();china.numner=20+Example6_1_Computable.MAX;japan.number=10+Example6_1_Computable.MAX;System.out.println("China的学号:"+china.numner+",求和结果:"+china.f(5));System.out.println("Japan的学号:"+japan.number+",求和结果:"+japan.f(1));}}//输出结果://China的学号:70,求和结果:10//Japan的学号:60,求和结果:51


(4)抽象类实现接口,可以不重写接口的所有方法(即可拥有也可以直接继承)

//例子:public interface Example6_1_Computable {final int MAX = 50;int f(int x);void speak(String string);float f(float x,float y);}public abstract class Example6_1_All implements Example6_1_Computable{public int f(int x) {int sum=0;for (int i = 1; i < x; i++) {sum=sum+i;}return sum;}}


接口的细节:

(1)程序可以用接口名访问接口中的常量,但是一个类实现了接口,该类可以直接在类体中使用该接口的常量

(2)定义接口时,如果关键字interface前面加了public关键字,就称这样的接口是public接口,可以被任何一个类实现。

(3)如果关键字interface前面不加public关键字,就称这样的接口是友好接口,可以被与该接口在同一个包中的类实现。

(4)若父类实现了某接口,那么子类自然也实现该接口不必显式的使用关键字implement声明这个接口

(5)接口也可以被继承,关键字extends,子接口继承父接口全部方法和变量

注意:Java提供的接口都在相应的包中,通过import语句不仅可以引入包中的类,也可以引入包中接口

import Java.io.*