java 接口使用例程及匿名类中类的使用

来源:互联网 发布:靠谱的理财产品 知乎 编辑:程序博客网 时间:2024/06/15 15:02

java中的接口(interface)是一种只包含了静态常量和抽象方法的特殊抽象类。

接口的使用可以实现即插即用的功能。


比如:电脑城的组装人员可以直接将PCI设备(网卡,声卡,显卡等设备)直接插到主板的PCI槽中,就可以使用PCI的功能

因为主板制造厂商跟PCI设备的制造厂商是按照同一的PCI规范来设计自己的产品的

下面定义了几个类和接口

//PCI接口,相当与现实中的PCI规范interface PCI{void start();void stop();} 
//NetWorkCard类相当与生产网卡的设计图纸。它是按照PCI规范设计的并且提供2个功能
class NetWorkCard implements PCI{public void start(){System.out.println("Send...");}public void stop(){System.out.println("Stop...");}}

//SoundCard类相当与生产声卡的设计图纸,它也是按照PCI规范设计的也提供2个功能class SoundCard implements PCI{public void start(){System.out.println("du..du..");}public void stop(){System.out.println("Sound stop");}}
//MainBoard类相当与生产主板的设计图纸,它负责调用PCI提供的方法class MainBoard{public void UsePCICard(PCI p){p.start();p.stop();}}


/*组装人员类,组装人员只需要用按设计图纸制造出来的PCI设备直接插到按主板设计图纸制造出来的主板上就可以实现主板调用PCI提供的功能至于具体怎么实现,组装人员可以不做了解*/class Assembler{public static void main(String[] args){MainBoard mb = new MainBoard();NetWorkCard nc = new NetWorkCard();SoundCard sc = new SoundCard();mb.UsePCICard(nc);mb.UsePCICard(sc);//匿名类之类用于测试功能mb.UsePCIcard(new PCI{public void start(){System.out.println("Test start..");}public void stop(){System.out.println("Test stop..");}});}}


上面关于匿名类中类的说明

new PCI();因为PCI是一个接口,即一个抽象类。所以不能实例化。
但是可以实例化一个PCI的子类testPCI,子类实现接口中的方法。
new testPCI(){
public void start(){
System.out.println("Test start...");
}
public void stop(){
System.out.println("Test stop...");
}
}
因为testPCI是PCI的一个子类,子类可以隐形的转换成父类
所以就有了:
new PCI(){
public void start(){
System.out.println("Test start..."):
}
public void stop(){
System.out.println("Test stop...");
}
}






原创粉丝点击