b=a.clone();a,b保存的内存地址不同,修改b的值,为什么a的值也随之改变?

a,b保存的内存地址不同,修改b的值,为什么a的值也随之改变?

运行结果及报错内容
我的解答思路和尝试过的方法
我想要达到的结果

克隆是不会相等的,参考:

package com;

public class TestMain {

    public static void main(String args[]) throws Exception {

        Person p = new Person(20,"张三");
        System.out.println(p.getName()+","+p.getAge());
        Person p1 = (Person)p.clone();
        p1.setName("李四");
        System.out.println(p1.getName()+","+p1.getAge());
        
        
    }
}
class Person implements Cloneable{
    
    private int age ;
    private String name;
    
    public Person(int age, String name) {
        this.age = age;
        this.name = name;
    }
    
    public Person() {}
 
    public int getAge() {
        return age;
    }
 
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    
    @Override
    protected Object clone() throws CloneNotSupportedException {
        return (Person)super.clone();
    }
}