Question 14
Consider the following Java code.
class Task implements Cloneable { String taskName; public Task(String n) { taskName = n; } public Task clone() throws CloneNotSupportedException { return (Task) super.clone(); }}class Project implements Cloneable { String projectName; Task task1; Task task2; public Project(String pN, Task t1, Task t2) { projectName = pN; task1 = t1; task2 = t2; } public Project clone() throws CloneNotSupportedException { Project p = (Project) super.clone(); p.task1 = p.task1.clone(); p.task2 = p.task2.clone(); return p; }}
public class Test { public static void main(String[] args) throws CloneNotSupportedException { Task t1 = new Task("Design"); Task t2 = new Task("Development"); Project proj1 = new Project("ProjectX", t1, t2); Project proj2 = proj1.clone(); proj2.task1.taskName = "Research"; proj2.projectName = "ProjectY"; System.out.println(proj1.projectName + " : " + proj1.task1.taskName); System.out.println(proj2.projectName + " : " + proj2.task1.taskName); }}What will the output be?