java String的构造方法new String()与""创建的字符串在使用==出现的疑问

我使用是jdk8

代码如下:

img

但是结果出乎我的意料

img

在使用equals()方法时,我已经将String s1向上转型为Object,此时的equals()判断的结果不是应该与==相同的吗?

s1是一个对象,没有放入常量池 s2 是常量池 ,所以s1==s2是false

== 是false,原因如楼上,再不懂可以看看常量池相关的资料;
String 向上转为Objec 后再调用equals方法,你以为是调用的Object的方法吗?
子类想上转型后 只能使用父类中的方法,但是实际执行的时候任然执行的实际子类中的方法