如果不覆盖equals这个函数而是自己建造另一个函数(不同名称)可以吗?

来源:2-5 使用自定义类测试我们的算法

慕少8265238

2020-10-08 07:36:05

老师同学们好,我想请问如果不覆盖equals这个函数而是自己建造另一个函数(不同名称)可以吗?

这样做和覆盖equals这个函数各有什么优点和缺点呢?

写回答

1回答

liuyubobobo

2020-10-08

可以。但是,你需要创建一个新的接口或者父类,然后再告诉用户,使用的我这种查找算法的话,相应的元素必须继承这个父类或者实现这个接口。


但是,equals 方法是 Object 内置的方法,就不需要这些工作了。对 Java 内置的对象,如 Integer,String 等,也都直接支持。


如果你想体验这一点,你可以尝试:


1)按照你的想法,创建一个使用你自己的函数做等于功能的 LinearSearch 类;

2)试一试,如何使用你自己的这个 LinearSearch,查找一个 Integer 数组?如何查找一个 String 数组?如何查找一个 Student 类数组?自己再设计一个比如 Dog 类,看看如何查找一个 Dog 类的数组?

3)比较一下二者。用实践的方式,再体会一下,为什么使用内置的 equals 更方便?


加油!:)


继续加油!:)

3

算法与数据结构

波波老师5年集大成之作,算法与数据结构系统学习,考试、面试、竞赛通用

2603 学习 · 1086 问题

查看课程