接口
| 接口声明 | 使用关键字(interface)来声明 | |
接口体 | 常量定义 | 接口体中所有常量访问权限一定都是public(允许public与final省略) | |
方法定义 | 该方法所有的抽象方法的访问权限一定都为public,该方法一定是是抽象方法(但public,abstract可以略掉) |
上述的代码参考:
interface Printable{
public final int MAX=100;//等价写法:int MAX=100;
puclic abstract void add();//等价写法:void add();
public abstract aloat sum(float x,float y);
}
接口的使用:
一个类通过关键字implements声明自己实现一个或多个接口,实现多个接口时,接口名用逗号隔开;例如class A implements Printable,Addable
注意事项:若一个类实现了某个接口,该类就必须重写该接口的所有方法,重写接口方法时,接口中的方法一定是public abstract方法,在重写接口方法时,要去掉abstract修饰方法方法访问权限一定要明显使用public修饰方法体
例子:
interface Computable{
final int MAX=100;//常量
void f(int x);//抽象方法(在接口中abstract关键字可以省掉
float g(float x,float y);//抽象方法(在接口中abstract关键字可以省掉
}
abstract class A implements Computable{
public int f(int x){//重写接口方法不要忘记public关键字
int sum=0;
for(int i=1;i<=x;i++){
sum=sum+i;
}
return sum;
}
接口的作用:可以增加多个类都需要具体有的功能。
接口回调:
将实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中,该接口变量就可以调用被类重写的接口方法
如例子:
interface ShowMessage{
void 显示商标(String s);
}
class TV implements ShowMessage{
public void 显示商标(String s){
System.out.println(s);
}
}
class PC implements ShowMessage{
public void 显示商标(String s){
System.out.println(s);
}
}
public class Example {
public static void man(String args[]{
ShowMessage sm; //声明接口变量
sm=new TV(); //接口变量中存在对象的引用
sm.显示商标("长城牌电视机"); //接口变量调用被类重写的接口方法(接口回调)
sm=new PC();
sm.显示商标("联想奔月5008pc机");
}
}