public class Copy { public Copy(Copy original) { } public static class Foo extends Copy { public Foo(Copy original { super(original); } } public static class Bar extends Copy { public Foo toFoo() { return new Foo(this); } } }