接口(interface)是什么?
“接口(interface)是用来描述类具有什么功能,而并不给出每个功能的具体实现。一个类可以实现(implement)一个或多个接口,并在需要接口的地方,随时使用实现了相应接口的对象。”—————-《java核心卷1》
接口(interface)的一般格式
[修饰符] interface 接口名 [extends 父接口名列表]{
[public] [static] [final] 常量;
[public] [abstract] 方法;
}
public interface Land {
//有无翅膀
boolean hasWing(int wings);
//生存地域
String territory();
//动物的种类
void kinds();
}
我们可以看到这里用关键字 interface 定义了一个 名为:Land (陆栖动物)的接口,接口中定义了三个方法。待会我么再看这些方法如何实现。接口中可定义常量。
注意事项:
1. 接口不能含有实例域
2. 不能在接口内实现方法
3. 接口方法类型只能是public 和 abstract,一般不用写出来,用默认的就可以
4. 在java SE5.0中,接口已经改进为泛型类型
public interface Land<T>(){
int compareTo(T other);
}
实现(implements)接口
下面我们定义一个chook的类去实现上面这个接口。
public class Chook implements Land {
private String kinds;
private String live_land;
private int wings;
public String getKinds() {
return kinds;
}
public void setKinds(String kinds) {
this.kinds = kinds;
}
public String getLive_land() {
return live_land;
}
public void setLive_land(String live_land) {
this.live_land = live_land;
}
public int getWings() {
return wings;
}
public void setWings(int wings) {
this.wings = wings;
}
Chook(String kinds,String live_land,int wings) {
// TODO Auto-generated constructor stub
this.kinds = kinds;
this.live_land = live_land;
this.wings = wings;
}
//接口方法的实现
public boolean hasWing(int wings) {
if(wings>0)//数量大于0返回true,有翅膀
return true;
else
return false;
}
public String territory() {
return live_land;
}
public void kinds() {
System.out.println(kinds);
}
}
可以看到我们分别实现了接口land的三个方法,Chook可以有自己的方法,但是一定要把接口的方法都重写。根据接口的的方法类型不同,参数不同,给出具体的实现。