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

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...");
}
}






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值