java中的接口是一种特殊的抽象类,它的成员变量是public static final,成员方法是public abstract。
接口是模块与模块通信的桥梁。
下面以计算机主板、显卡、显卡接口为例说明接口的作用。
我们都知道主板上提供了很多接口,可以将一些硬件插入接口,通过总线与CPU相连,从而进行协调工作。生产这些硬件设备厂商不同,但是无论是哪个厂商生产的产品都应该符合主板上接口的标准。
显卡接口代码如下:
interface VideoCard{
void display();
String getName();
}
void display();
String getName();
}
厂商生产的显卡应该实现主板显卡接口的标准,代码如下:
class Angda implements VideoCard{
String name;
Angda(){
name="Angda's videocard";
}
Angda(String name){
this.name=name;
}
public void display(){
System.out.println("Angda's videocard is running");
}
public String getName(){
return name;
}
}
String name;
Angda(){
name="Angda's videocard";
}
Angda(String name){
this.name=name;
}
public void display(){
System.out.println("Angda's videocard is running");
}
public String getName(){
return name;
}
}
主板的代码:
class MainBoard{
String CPU;
VideoCard vc;
void setCPU(String CPU){
this.CPU=CPU;
System.out.println(CPU);
}
void setVideoCard(VideoCard vc){
this.vc=vc;
System.out.println(vc.getName());
}
void run(){
System.out.println(CPU+" is running");
vc.display();
System.out.println("MainBoard is running");
}
}
String CPU;
VideoCard vc;
void setCPU(String CPU){
this.CPU=CPU;
System.out.println(CPU);
}
void setVideoCard(VideoCard vc){
this.vc=vc;
System.out.println(vc.getName());
}
void run(){
System.out.println(CPU+" is running");
vc.display();
System.out.println("MainBoard is running");
}
}
程序的入口:
class Computer{
public static void main(String[] args){
Angda a=new Angda();
MainBoard m=new MainBoard();
m.setCPU("Intel's CPU");
m.setVideoCard(a);
m.run();
}
}
public static void main(String[] args){
Angda a=new Angda();
MainBoard m=new MainBoard();
m.setCPU("Intel's CPU");
m.setVideoCard(a);
m.run();
}
}