Ich versuche es ganz kurz zu halten:
A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.
www.geeksforgeeks.org
zeigt es (auf Englisch) sehr schön auf incl. Beispiel.
Im groben sind da mehrere Schritte üblich:
- Optional: Prüfung der Referenz - ist die Referenz gleich, dann muss man nichts weiter prüfen.
- Prüfen, ob es eine Instanz der Klasse ist, dann ein cast zu der Klasse und Vergleich der Attribute.
Das ist die einfache Variante. Das wird alles prinzipiell noch komplexer:
- Teilweise wird die Logik wichtig. So kann bei Datenbank-Entities ggf. nur die ID geprüft werden.
- hashcode kommt mit rein. Wenn equals überschrieben wird, sollte auch hashcode überschrieben werden.
- Bei abgeleiteten Klassen kommt auch der Aufruf vom Parent mit dazu ...
- Bezüglich Prüfung der Klasse kann man sich auch noch weitergehende Gedanken machen ...