大佬们,java的静态代理的代理类不实现接口也能实现代理功能吧?初学者求解,谢谢啦

/**
* 代理对象,静态代理
*/
public class UserDaoProxy implements IUserDao{
//接收保存目标对象
private IUserDao target;
public UserDaoProxy(IUserDao target){
this.target=target;
}
//这里已经将被代理局部对象变为成员对象了,实现接口的作用在哪里呀??
public void save() {
System.out.println("开始事务...");
target.save();//执行目标对象的方法
System.out.println("提交事务...");
}
}

实现接口的作用在于你向代理类注入的 Target的具体实现类型。
这是一种面向抽象的编程思路,只有客户端调用的时候才会传入真实的实例。UserDaoProxy 构造时的 IUserDao 的具体实例。