student.courses.contains(course2)有疑問
這句話是調(diào)用Student類的成員courses(一個(gè)Set)的contains方法
contains方法本質(zhì)是調(diào)用courses中各個(gè)Course類對象的hashcode與equals方法與傳入的對象(course2)進(jìn)行比較
所以要重寫Course類中的hashcode方法與equals方法,這么理解對嗎?
還有courses中存儲的都是Course類對象(因?yàn)橛梅盒鸵?guī)定的),如果不用泛型規(guī)定,并且在Set中存儲的元素超過1種類的對象(比如有自己創(chuàng)建的Teacher類型還有Course類型)
那是不是這2種類的hashcode方法和equals方法都需要重寫?
請各位dalao指點(diǎn)
2020-01-19
如果不用泛型規(guī)定,那默認(rèn)泛型是Object對象,根據(jù)java多態(tài)的特性,如果子類重寫方法,那調(diào)用時(shí)方法是子類的方法。
希望對你有幫助