I disagree with shukla raghav. The clone() method is not helpful there. If you have a superclass copy constructor, you can simply copy all the fields from the old instance to the new one. If the fields are primitives or immutable reference types, there is no need for any further action. If however the fields are mutable (eg List<
String>) they might require duplication. There is a method in the
Collections class which can copy Lists easily.
You are not changing the state and structure of the classes, but adding a bit to their interface. The fields are the same, and you ahve simply added an overloaded constructor.
And I thought you were a C# chap