فئة أ { }
الفئة ب تمتد أ { }
الكائن o1 = جديد A();
الكائن o2 = جديد B();
o1 مثيل A => صحيح
o1 مثيل B => خطأ
o2 مثيل A => صحيح // <========== هنا
o2 مثيل B => صحيح
o1.getClass().equals(A.class) => صحيح
o1.getClass().equals(B.class) => خطأ
o2.getClass().equals(A.class) => خطأ // <===============هنا
o2.getClass().equals(B.class) => صحيح
سيكون getClass() مفيدًا عندما تريد التأكد من أن المثيل الخاص بك ليس فئة فرعية من الفئة التي تقارن بها.
一个非常完美的يساوي 法法的写法:
// يجب أن يُرجع خطأ إذا كانت المعلمة الصريحة فارغة
إذا (otherObject == null) يُرجع false؛
// إذا كانت الفئات غير متطابقة، فلا يمكن أن تكون متساوية
إذا (getClass() !=otherObject.getClass()) بإرجاع خطأ؛
// الآن نعلم أن كائن آخر هو موظف غير فارغ
موظف آخر = (موظف) كائن آخر؛
// اختبار ما إذا كانت الحقول لها قيم متطابقة
return name.equals(other.name) && Salary ==other.salary && HireDay.equals(other.hireDay);
}