首页 > 代码库 > 接口不能被实例化
接口不能被实例化
今天在看模板方法设计模式的时候 发现在接口回调的时候,匿名类里面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了一个接口, 而是这匿名类实现了接口,然后把自己当成参数传递了过去 。
接口不能被实例化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。