super 的一个小的问题 希望得到确认 Java核心技术卷 一

图片说明

在主函数中,有语句

System.out.println("carl.equals(boss): " + carl.equals(boss));

也就是说 carl.equals(boss), 到manager函数中有

  public boolean equals(Object otherObject)
   {
      if (!super.equals(otherObject)) return false;
      Manager other = (Manager) otherObject;
      // super.equals checked that this and other belong to the same class
      return bonus == other.bonus;
   }

这个super是调用父类中的方法,也就是说carl和boss先调用父类中的这个方法进行比较,这个是对的吗?

也就是说carl和boss先调用父类中的这个方法进行比较,这个是对的吗?
答:是的,

if (!super.equals(otherObject)) return false;

这代码可能是为了比较 super和otherObject是不是一个类,,,可以说是先做一个筛选,,,
先跟父类比一下,缩小范围吧(里氏代换原则,子类可以出现的地方,父类都可以)

可以这样用,,