java多态

xiaoxiao2021-02-28  78

使用”引用计数”跟踪仍旧访问着共享对象的对象数量

//共享对象 class Shared{ private int refcount=0; private static long counter=0;//跟踪创建Shared实例的数量 private final long id=counter++;//实例的id public Shared(){ System.out.println("Creating"+this); } public void addRef{refcount++;} protected void dispose(){ if(--refcount==0) System.out.println("Disposing"+this); } public String toString(){ return "Shared"+id; } } //组合对象 class Composing{ private Shared shared; private static long counter=0; private final long id=counter++; public Composing(Shared shared){ System.out.println("Creating"+this); this.shared=shared; this.shared.addRef();//实例数量加一 } protected void dispose(){ System.out.println("disposing"+this); shared.disposing(); } public String toString(){return "Composing"+id;} } public class ReferenceCounting{ public static void main(String[] args){ Shared shared=new Shared(); Composing[] composing={ new Composing(shared); new Composing(shared); new Composing(shared); new Composing(shared); } for(Composing c:composing) c.dispose(); } }
转载请注明原文地址: https://www.6miu.com/read-66400.html

最新回复(0)