我使用是jdk8
代码如下:
但是结果出乎我的意料
在使用equals()方法时,我已经将String s1向上转型为Object,此时的equals()判断的结果不是应该与==相同的吗?
s1是一个对象,没有放入常量池 s2 是常量池 ,所以s1==s2是false
== 是false,原因如楼上,再不懂可以看看常量池相关的资料;
String 向上转为Objec 后再调用equals方法,你以为是调用的Object的方法吗?
子类想上转型后 只能使用父类中的方法,但是实际执行的时候任然执行的实际子类中的方法