class C implements Cloneable { public C copy () { return (C)this.clone(); } } class D extends C implements Cloneable { public D copy () { return (D)this.clone(); } }