继承和等于方法

时间:2018-06-18 15:00:21

标签: java oop

我有以下代码,问题是将调用equals函数? 答案是 - 对象类的equals,有人可以解释原因吗? 我认为A类的equals将被调用,因为在运行时a是A而A对A类有一个正确的equals函数,因为b是A类的引用。 为什么我的假设是错的?

public class MainClass
{

  public static void main(String[] args)
  {

    Object a = new A();
    A b = new B();

    System.out.println(a.equals(b));

  }
}


public class A
{
    public boolean equals (A other)
    {
      System.out.println("a");
      return true;
    }
}

public class B extends A
{

    public boolean equals (Object other)
    {
      System.out.println("b");
      return true;
    }

    public boolean equals (B other)
    {
      System.out.println("c");
      return true;
    }
}

0 个答案:

没有答案