classe A { }
la classe B étend A { }
Objet o1 = nouveau A();
Objet o2 = nouveau B();
o1 instance de A => vrai
o1 instance de B => faux
o2 instanceof A => true // <================ ICI
o2 instance de B => vrai
o1.getClass().equals(A.class) => vrai
o1.getClass().equals(B.class) => false
o2.getClass().equals(A.class) => false // <===============ICI
o2.getClass().equals(B.class) => vrai
getClass() sera utile lorsque vous souhaitez vous assurer que votre instance n'est PAS une sous-classe de la classe avec laquelle vous comparez.
一个非常完美的est égal à方法的写法 :
// doit retourner false si le paramètre explicite est nul
if (otherObject == null) renvoie false ;
// si les classes ne correspondent pas, elles ne peuvent pas être égales
if (getClass() != otherObject.getClass()) renvoie false ;
// maintenant nous savons que otherObject est un employé non nul
Employé autre = (Employé) autreObjet ;
// teste si les champs ont des valeurs identiques
return name.equals(other.name) && salaires == other.salary && HireDay.equals(other.hireDay);
}