JDK的动态代理为什么要用接口接收增强的代理类,而不能用实现类接收?

收藏
Spring 动态代理
25
Feb 1, 2018

JDK的动态代理为什么要用接口接收增强的代理类,而不能用实现类接收?

回答

小跑的蜗牛回答

问题解决方法

JDK代理只能只针对接口来产生代理,代理类与被代理类类似兄弟关系  不能相互转换 只能用共同的接口

关系类似List  list = new ArrayList() 不能 使用

ArrayList list = new LinkedList () 

ArrayList  LinkedList都实现了List接口 所以可以使用 List接口来接收

关系对比:

List==IUserService   接口

ArrayList == UserServiceImpl  接口的实现类

LinkedList == userServiceProxy 产生的增强代理类

(2)

提交成功