萌新求问Java,代码有一点问题不懂

图片说明

如图,这几个代码
能看出来跟a1,a2的类型有关,但是不是很懂原理,有点模糊,希望大佬来给总结一下知识点

不重写equals,比较的是引用,所以a1 a2两个对象不是一个对象,不管x是否相等,就是false
重写了那么就是true
object a1 a2,那么调用的是object的equals,相当于没有重写,还是false
用A类型,或者强制转换为A类型。就是true