clase A { }
la clase B extiende A { }
Objeto o1 = nuevo A();
Objeto o2 = nuevo B();
o1 instancia de A => verdadero
o1 instancia de B => falso
o2 instancia de A => verdadero // <================ AQUÍ
o2 instancia de B => verdadero
o1.getClass().equals(A.clase) => verdadero
o1.getClass().equals(B.clase) => falso
o2.getClass().equals(A.class) => false // <===============AQUÍ
o2.getClass().equals(B.clase) => verdadero
getClass() será útil cuando desee asegurarse de que su instancia NO sea una subclase de la clase con la que está comparando.
一个非常完美的 es igual a方法的写法:
// debe devolver falso si el parámetro explícito es nulo
si (otroObjeto == nulo) devuelve falso;
// si las clases no coinciden, no pueden ser iguales
si (getClass()! = otherObject.getClass()) devuelve falso;
// ahora sabemos que otroObjeto es un Empleado no nulo
Otro empleado = (Empleado) otroObjeto;
// prueba si los campos tienen valores idénticos
return nombre.equals(otro.nombre) && salario == otro.salario && díadecontratación.equals(otro.díadecontratación);
}