接口不能被实例化

王朝学院·作者佚名  2016-05-28
窄屏简体版  字體: 小  |  中  |  大  |  超大  

接口不能被实例化今天在看模板方法设计模式的时候 发现在接口回调的时候,匿名类里面new了一个接口 。觉得很奇怪就写了个小程序测试了一下

//HibernateCallback是一个接口public void saveUser(final User user) { execute(new HibernateCallback() { public Object doInsession(Session session) { session.save(user); return null; } }); }

下面是测试代码

public interface Interface{ void PRint();}public class Test { static void updateUser() { execute(new Interface() { @Override public void print() { System.out.println("我是一个接口"); } }); } static void execute(Interface i){ i.print(); } public static void main(String[] args){ updateUser(); }}

输出结果是: 我是一个接口

匿名类的反编译文件

从反编译文件上看并不是new了一个接口, 而是这匿名类实现了接口,然后把自己当成参数传递了过去。

 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
© 2005- 王朝網路 版權所有 導航