1.概述
JDK动态代理为什么只能代理有接口的类?
我们都知道java中的动态代理只能代理有接口的类,这是一个常识,但是如果这里问一下为什呢?
在Java中,动态代理是一种通过在运行时生成代理类的机制。JDK动态代理基于Java的反射机制,可以在运行时动态地创建代理对象,并将方法调用重定向到实际的目标对象上。代理对象实现了被代理接口,可以替代原始对象来执行相同的接口方法
。
在java中动态代理是通过调用Proxy.newProxyInstance()来实现的,但是却需要传入被动态代理的一个接口类,之所以要传入接口而不能传入类,还是取决于JDK动态代理的一个底层实现。
JDK动态代理会在程序运行期间去动态的生成一个代理类,这个动态代理类会继承一个Proxy类,同时还会去实现被动态代理的接口。
原始对象和代理对象之间存在一个共同的接口,这个接口定义了需要被代理的方法。对于JDK动