JAVA什么时候要覆盖toString()、equals()、hashCode()方法??为什么要覆盖呢?

2024-11-23 06:04:19
推荐回答(1个)
回答1:

tostring方法一般是在输出累的时候使用的比如说system.out.print方法的时候会自动调类的tostring方法,默认的话直接返回类的地址,你如果想要输出累的内容的话需要重写这个方法来达到要求,equals方法也是这个意思主要是你想比较两个对象是否相等的时候用到,默认的话是直接比较两个类的地址,比如你new两个对象a、b使用equals方法是返回的是不相等因为他们在内存中的地址是不同,假设类中有x、y两个int参数你规定如果x、y相等的情况说明a、b相同,你就需要重写这个方法了,至于说hashcode这个方法一本不会重写的,很少会用到,一般如果重写的话也会使用其他已经写过的累的hashcode方法来弄一下,这个一般也是在比较的时候才会用到的,具体的我就不太清楚了还得查资料,只是了解过这个东西,实在是没用到过