पर आधारित जावा हैशकोड ऑब्जेक्ट.hashCode() का डिफ़ॉल्ट व्यवहार वस्तु के "पता" को अनिवार्य रूप से वापस करना है ताकि aHashCode() == b.hashCode() अगर और केवल अगर एक == बी । यदि सुपरक्लस पहले से ही हैशकोड() को परिभाषित करता है तो मैं इस व्यवहार को उपयोगकर्ता द्वारा परिभाषित कक्षा में कैसे प्राप्त कर सकता हूं? उदाहरण के लिए:पहचान
class A {
public int hashCode() {
return 0;
}
}
class B extends A {
public int hashCode() {
// Now I want to return a unique hashcode for each object.
// In pythonic terms, it'd look something like:
return Object.hashCode(this);
}
}
विचार?
नहीं, यह नहीं है। यह कोड प्राप्त करना है ताकि aHashCode()! = B.hashCode() जरूरी है कि एक! = बी। –
... लेकिन a.hashCode() == b.hashCode() का मतलब नहीं है == बी मुझे जोड़ा जाना चाहिए था। –
यदि "a.equals (b)", जरूरी नहीं है "a == b", तो हैश कोड बराबर होना चाहिए: "a.hashCode() == b.hashCode()" –