java动态代理为什么只能代理接口