Hallo zusammen,
Ich hab grad im Internet mal wieder gelesen das der Vergleich bei Equals im einfachsten Fall vom gleichen Typ ist. Das heisst wenn zwei Objekte den gleichen Typ haben dann ist das true.
Beispiel:
Mich wunder aber folgendes:
Weshalb das true ist, versteh ich nicht.... Da other.getClass den Namen der Oberklasse mit den Namen der Unterklasse vergleicht. Diese doch unterschiedlich da der Typ der Oberjkasse Object ist und der Typ der unterklasse den Typ hat in der sich equals befindet. Beispielsweise Buch.
Weshalb ist das denn true?
Ich hab grad im Internet mal wieder gelesen das der Vergleich bei Equals im einfachsten Fall vom gleichen Typ ist. Das heisst wenn zwei Objekte den gleichen Typ haben dann ist das true.
Beispiel:
Java:
Buch o1 = new Buch();
Buch o2 = new Buch();
if (o1.equals(o2) ) { return true; } else { return false; }
Mich wunder aber folgendes:
Java:
class Buch{
public boolean equals(Object other) {
...
if (other.getClass() != getClass())
return false;
...
}
downcast.....
}
Weshalb ist das denn true?
Zuletzt bearbeitet von einem Moderator: