public class Student { public int age; public Student(int age) { this.age = age; } } public class Grade { public int gradeIndex; public Student stu; public Grade(Grade grade) { gradeIndex = grade.gradeIndex; } // Shallow copy public Grade WiseCopy() { return (Grade)this.MemberwiseClone(); } // Deep table copy public Grade DeepCopy() { Grade grade = (Grade)this.MemberwiseClone(); grade.stu = new Student(this.stu.age); return grade; } }