Скажем, что у меня есть класс A, а B, C, D - производные от A.
Если я хочу знать, какой тип ссылки на объект, я могу объявить:
// pseudo-code
if(obj instanceof B)
< is B>
else if(obj instanceof C)
< is C>
else
<is D>
Это потому, что я уверен, что классы, полученные из A, являются только B, C и D.
Но что, если я хочу просто проверить, что две ссылки указывают на один и тот же объект?
Так что-то вроде:
if(obj1 instanceof obj2)
<do something>
Но, конечно, синтаксис неверен. Как проверить это без одной тысячи if-else?