Java8重写equals的疑惑
在重写Object类的equals方法时,需要强转的原因:
代码中的equals方法重写了Object类的equals方法,其形参为Object类型。Object类型为Java中所有类型的超类,因此任何类型的对象都可以传入equals方法。
然而,在重写后的equals方法中,需要比较两个Phone对象的name和price属性。Object类型没有getName()和getPrice()方法,因此不能直接比较。
立即学习“Java免费学习笔记(深入)”;
为了解决这个问题,需要将传入的Object类型的对象强转为Phone类型。这可以确保编译器知道传入的对象具有getName()和getPrice()方法。
在equals方法的第一行,打印出的obj结果为"Phone@1b6d3586"。这表明传入的对象确实是一个Phone类型的实例。但是,强转仍然是必要的,因为编译器只知道它是Object类型,而我们需要使用它作为Phone类型来比较属性。
以上就是Java8中重写equals方法,为什么需要强制类型转换?的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号