Hallo, ich schreibe grade eine Klasse um equals und hashCode zu üben.
Bei der erstellung der Prüfungsbedingungen bei equals ensteht jedoch ein Fehler den ich nicht nachvollziehen kann:
Warum kann ich nicht den Aufruf o.getId(); starten? other und o können doch die Methoden von der Superklasse verwenden. Bei other klappt das ja auch. Nur bei o wird der Versuch den getter anzusprechen nicht reagiert. Woran liegt das und wie kann man das lösen?
Bei der erstellung der Prüfungsbedingungen bei equals ensteht jedoch ein Fehler den ich nicht nachvollziehen kann:
Code:
class Person {
private int id;
public Person(int n) {
id = n;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
}
Code:
public class Student extends Person {
public Student(int id) {
super(1);
System.out.println(id);
}
@Override
public boolean equals(Object o) {
if (this == o)
return true;
if (o == null)
return false;
if (getClass() != o.getClass())
return false;
Student other = (Student) o;
if(other.getId() == o.) //hier tritt der Fehler auf
return true;
}
}
Warum kann ich nicht den Aufruf o.getId(); starten? other und o können doch die Methoden von der Superklasse verwenden. Bei other klappt das ja auch. Nur bei o wird der Versuch den getter anzusprechen nicht reagiert. Woran liegt das und wie kann man das lösen?