Объект Клон Мелкая копия не меняет переменную

Я попытался клонировать объект и изменить функции-члены нового клонированного объекта. Если это мелкая копия и, согласно вики-странице, мелкая копия и исходный объект указывают на один и тот же объект, он должен изменить значение переменной.

    CloneExample obj1=new CloneExample();
    CloneExample obj2=(CloneExample) obj1.clone();
    obj1.a=2;
    obj1.c='a';
    System.out.println("obj1 real "+obj1.a+" "+obj1.c);
    System.out.println("obj2 real "+obj2.a+" "+obj2.c);
    obj2.a=99;
    obj2.c='z';
    System.out.println("obj2 after change "+obj2.a+" "+obj2.c);
    System.out.println("obj1 after change "+obj1.a+" "+obj1.c);
    System.out.println("obj1="+obj1+" obj2="+obj2);

Если этот клон является мелкой копией, то obj2 и Obj1 указывают на одну и ту же ссылку obj, изменение obj2 должно отражаться в obj1. Так не бывает Может ли кто-нибудь объяснить (я понимаю, что клон предназначен для того, чтобы дать нам копию объекта, но если это мелкая копия, тогда зачем нам нужна мелкая копия ?, мы всегда должны идти на глубокую копию). Спасибо.

Ответы на вопрос(3)

Ваш ответ на вопрос