package Proxy;/**
* 学生代理类,保留了一个学生实体,这样就可以调用实体的方法
*/publicclassStudentProxyimplementsPerson{
Student stu;publicStudentProxy(Person stu){//只代理学生对象if(stu.getClass()== Student.class){this.stu =(Student) stu;}}//代理学生的交班费行为publicvoidgiveMoney(){//附加行为
System.out.println("mio is in progress!");
stu.giveMoney();}}
测试
package Proxy;publicclassMain{publicstaticvoidmain(String[] args){
Person s =newStudent("mio");
Person monitor =newStudentProxy(s);
monitor.giveMoney();}}
package DynamicProxy;publicclassSportsCarimplementsCar{@Overridepublicvoidrun(){
System.out.println("Sports car runs");}@Overridepublicvoidstop(){
System.out.println("Sports car stops");}}