quals方法實(shí)現(xiàn)了等價(jià)關(guān)系,重載時(shí)要遵守的通用約定:
a.自反性(reflexive)
對(duì)于任何非null的引用值x, x.equals(x)必須返回true双谆。
基本上不會(huì)違背這一條規(guī)定。如果違背了的話席揽,將一個(gè)引用添加到一個(gè)集合中顽馋,然后,調(diào)用集合的contains(x)方法幌羞,它會(huì)返回false寸谜。x.equals(x)不等于true,導(dǎo)致contains(x)方法返回false属桦。
b.對(duì)稱(chēng)性(symmetric) ?
對(duì)于任何非null的引用值x和y,當(dāng)且僅當(dāng)y.equals(x)返回true時(shí)熊痴,x.equals(y)必須返回true
c.傳遞性(transitive) ?
對(duì)于任何非null的引用值x,y和z,如果x.equals(y)返回true聂宾,并且y.equals(z)返回true果善,那么x.equals(z)返回true
d.一致性
對(duì)于任何非null的引用值x和y,只要equals的比較操作在對(duì)象中所用的信息沒(méi)有被修改系谐,多次調(diào)用x.equals(y)就會(huì)一致地返回
true巾陕,或者一致地返回false
e.非空性
對(duì)于任何非null的引用值x,x.equals(null)必須返回false