think in java 200页上面那个例子 public static ServiceFactory factory =
new ServiceFactory (){
public Service getService(){
return new implementation1();
}
}接口ServiceFactory 是如何被new 出来的? 有木有技术宅 解答下
感激不已!~~~~~
new ServiceFactory (){
public Service getService(){
return new implementation1();
}
}接口ServiceFactory 是如何被new 出来的? 有木有技术宅 解答下
感激不已!~~~~~
大家看仔细 ServiceFactory 接口没有实现类!~~
实例化一个实现了该接口的类的对象,并把找个对象赋给接口ServiceFactory的对象。
而实现了该接口的类就是那个匿名内部类,该内部类只能在此处被使用一次。
(){
public Service getService(){
return new implementation1();
}
}
这其实就是一个类,只不过这个类没有名字而已,就这样。
花括号部分就是 该匿名内部类的实现该 interface 的方法的部分,
注意的是后面要有 分号哦。。呵呵
“产生Service”的是你的被实例化的接口的一段方法代码。
我有一个类叫做Student,里面有一个getName方法返回一个字符串,不科学吗?
new ServiceFactory (){
public Service getService(){
return new implementation1();
}
}
这部分就是匿名内部类,实现了你的接口,通过子类实现借口的实例化。
这就是你的实现类。