接口的实现来指定。
例如:我们我们定义一个类Actor
public class Vector implements Person{
public void sing(){
System.out.println("演员唱歌");
}
public void dance(){
System.out.println("演员跳舞");
}
}
上面的类的功能不能满足我们的需求,我们需要加入系统的功能,就需要动态代理了
要动态代理,被代理对象必须实现接口
package com.heima.reflect;
public interface Person {
public abstract void sing();
public abstract void dance();
}
//需要一个目标类(被代理对象)
Vector v=new Vector();
//生成代理类
/**
第一个参数:类加载器:一般用实现接口的类加载器
第二个参数:代理类实现的接口(就是我们上面定义的Person了)
第三个参数:我们生成的代理对象要干什么事。
*/
Proxy.newProxyInstance(v.getClass().getClassLoader(),v.getClass().getInfaces(),new InvocationHandler(){
public Object invoke(Object proxy, Method method, Object[] args){
//这里面就可以添加我们的系统功能了
}
})