Java接口与实现

接口

接口包含接口声明和接口体

接口声明

接口使用关键字 interface 来声明接口。格式如下:

1
interfance 接口名字

接口体

接口体中包含常量的声明(没有变量)和抽象方法两部分。接口体中只有抽象方法没有普通方法,而且接口体中所有的常量的访问权限一定都是 public ,而且是 static 常量(允许省略 public final static 修饰符),所有的抽象方法的访问权限一定都是 public (允许省略 public abstract 修饰符)

1
2
3
4
5
interface Font{
public final static int max = 50; //等价于:int max = 50;
public abstract void add(); //等价于:void add();
public abstract float sum(float a, float b); //等价于:float sum(float a, float b);
}

接口实现

在Java中,接口由类来实现以便使用接口中的方法。一个类需要在类声明中使用关键字 implements 声明该类实现一个或多个接口。实现多个接口用逗号隔开接口名。

一个简单的实例 广告牌,展示多个公司广告词

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
interface Advertisement{
void showAdvertisement();
String getName();
}

class CompanyA implements Advertisement {
public void showAdvertisement() {
System.out.println("everything is possible!");
}

public String getName() {
return "coompanyA";
}
}
class CompanyB implements Advertisement{
public void showAdvertisement() {
System.out.println("just do youself!");
}

public String getName() {
return "companyB";
}
}

class AdvertisementBoard {
public void show(Advertisement advertisement) {
System.out.println(advertisement.getName()+" Advertisement :");
advertisement.showAdvertisement(); //接口回调
}
}

public class Interface {
public static void main(String[] args) {
AdvertisementBoard board = new AdvertisementBoard();
board.show(new CompanyA());
board.show(new CompanyB());
}
}

运行结果

1
2
3
4
coompanyA Advertisement
everything is possible!
companyB Advertisement
just do youself!