java多态(接口与实现)之静态代理
2017-06-03 10:49
253 查看
//废话不多说,直接上代码 public class Test { static interface Subject{ void sayHi(); void sayHello(); } static class SubjectImpl implements Subject{ @Override public void sayHi() { System.out.println("hi"); } @Override public void sayHello() { System.out.println("hello"); } } static class SubjectImplProxy implements Subject{ private Subject target; public SubjectImplProxy(Subject target) { this.target=target; } @Override public void sayHi() { System.out.print("say:"); target.sayHi(); } @Override public void sayHello() { System.out.print("say:"); target.sayHello(); } } public static void main(String[] args) { Subject subject=new SubjectImpl(); Subject subjectProxy=new SubjectImplProxy(subject); subjectProxy.sayHi(); subjectProxy.sayHello(); } } //直接说main方法的调用过程: subjectProxy.sayHi()调用SubjectImplProxy这个实现类的sayHi()方法,这个时候SubjectImplProxy类中的变量target已经被实例化,实例化的实现类为SubjectImpl ,所以target.sayHi()这个方法调用SubjectImpl 这个实现类的sayHi()方法。 打印结果:say:hi say:hello
相关文章推荐
- 多线程-静态代理的方式 - 实现Runnable接口
- AOP:静态代理实现方式①通过继承②通过接口
- 静态代理之通过实现接口来实现代理
- JDK Proxy实现接口代理
- 代理类:接口与实现的分离
- ASP.NET中用IHttpModule接口实现伪静态
- ASP.NET中用IHttpModule接口实现伪静态
- 利用RIL代理接口实现短信的操作之短信的接收
- 如何实现在已有代码之后添加逻辑之继承,组合(静态代理)实现方法
- java动态代理2 (cglib 不用实现接口)
- 通过代理接口在内存中动态生成代理类源代码并编译实现的真正动态代理
- 在静态库中,实现自动的初始化与卸载接口
- 用WinDbg探索CLR世界 [10] 透明代理实现原理浅析 - 静态结构
- 在静态库中,实现自动的初始化与卸载接口
- 【.NET中AOP的实现方案】静态代理
- ASP.NET中用IHttpModule接口实现伪静态
- java实现静态代理
- Spring的无接口代理实现AOP
- ubuntu 用nginx反向代理apache,实现静态文件用nginx,php文件用apache实现
- java对于接口和抽象类的代理实现,不需要有具体实现类