子类实例创建的父类对象和子类实例创建的子类对象 内存地址

Object o=new String();//""
String str=new String();

    System.out.println(o==str);//false
    System.out.println(o.equals(str));//true
    
    
    
    Father  f=new Son();
    Son     s=new Son();
    System.out.println(f.equals(s));

为什么自写的父类和子类对象之间比较为false

== 比较的是内存地址 Object的equals是比较的hash值 String 的 equals 比较的是内容(因为String类重写了equals方法)
父类equals子类,那么比较的是hash,每个对象的hash都是不一样的,所以输出为false

如果你的 父类 equals 子类 预期结果是 true 的话,那么需要重写 Son 对象的 equals() 方法;如果预期 父类 = 子类 的结果是 true ,那么还需要重写 hashCode() 方法