java - 继承和equals方法
问题描述
我有以下代码,问题是equals
会调用什么函数?答案是 - equals
Object 类的,有人可以解释为什么吗?我认为equals
将调用 A 类,因为在运行时 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;
}
}
解决方案
推荐阅读
- javascript - Chartjs - 工具提示 - 不同的圆角半径
- android - Android Studio中文件名旁边的勾号
- vb6 - 如何在 DTPICKER vb6 中计算分钟
- webpack - 如何在动态导入块名称中添加哈希?
- swift - 有什么办法可以暂时隐藏蓝点,然后让它在 GMSMapView 中再次消失?
- graphql - Appsync graphql:如何根据数组字段中的条目进行过滤
- javascript - Javascript用匹配的数组键替换字符串中的单词
- python - Python 3.7“由于环境错误而无法安装软件包:无法解析:主机:端口
- amazon-web-services - 在 Cloudformation 中将 Cloudfront“基于所选请求标头的缓存”设置为全部
- javascript - 安装引导程序后找不到面临的模块