java 和接口有关的匿名类

和接口有关的匿名类

    假设Computable是一个接口,那么,Java允许直接用接口名和一个类体创建一个匿名对象,此类体被认为是实现了Computable接口的类去掉类声明后的类体,称作匿名类。下列代码就是用实现了Computable接口的类(匿名类)创建对象。

new Computable(){
    实现接口的匿名类的类体
}

    如果某个方法的参数是接口类型,那么可以使用接口名和类体组合创建一个匿名对象传递给方法的参数,类体必须要重写接口中的全部方法。例如,对于void f(Computable x),其中的参数x是接口,那么在调用f时,可以向f的参数x传递一个匿名对象,如: f(new Computable({实现接口的匿名类的类体})。

    在下面的例子3中,演示了和接口有关的匿名类的用法,运行效果如图所示。

interface SpeakHello {
		 void speak();
}
class HelloMachine {
	 public void turnOn (SpeakHello hello) {
	 hello.speak();
	 }
}
public class Example5_4{
	 public static void main(String args[]) {
		 HelloMachine machine = new HelloMachine();
		 machine.turnOn( new SpeakHello() {  //和接口 SpeakHello有关的匿名类
			 public void speak() {
				 System.out.println("hello,you are welcome!");
			 }
		 }
		 );
		 machine.turnOn( new SpeakHello() { //和接口 SpeakHello有关的匿名类
				 public void speak() {
					 System.out.println("你好,欢迎光临!");
				 }
		 }
		 );
	 }
 }

运行结果:



  • 8
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值