kelas A {} }
kelas B memperluas A {} }
Objek o1 = baru A();
Objek o2 = baru B();
o1 contoh A => benar
o1 contoh B => salah
o2 instanceof A => benar // <= DI SINI
o2 contoh B => benar
o1.getClass().equals(A.class) => benar
o1.getClass().equals(B.class) => salah
o2.getClass().equals(A.class) => false // <===============DI SINI
o2.getClass().equals(B.class) => benar
getClass() akan berguna ketika Anda ingin memastikan instance Anda BUKAN merupakan subkelas dari kelas yang Anda bandingkan.
一个非常完美的equals方法的写法:
// harus mengembalikan false jika parameter eksplisitnya null
jika (Objek lain == null) mengembalikan false;
// jika kelasnya tidak cocok, maka kelasnya tidak bisa setara
jika (getClass() != otherObject.getClass()) mengembalikan false;
// sekarang kita tahu otherObject adalah Karyawan yang bukan null
Karyawan lain = (Karyawan) Objek lain;
// menguji apakah kolom tersebut mempunyai nilai yang sama
return name.equals(other.name) && gaji == other.salary && HireDay.equals(other.hireDay);
}