Wenn man dem doch noch etwas abgewinnen will, könnte man vielleicht argumentieren, dass man die Gleichheitsentscheidung bei ungleichen Klassen nicht der Klasse Kunde überlassen will, sondern der nächsten Oberklasse. Das ist zwar jetzt noch Object, aber das muss ja nicht so bleiben. Ist vielleicht etwas konstruiert, aber prinzipiell kann es so etwas ja schon mal geben, wie folgendes Beispiel zeigt:Weil der Programmierer es unnötig komplex machen wollte. Wenn du dir den Code von Object.equals ansiehst:
Dann wäre ein return false; an der Stelle auch vollkommen ausreichend.Java:public boolean equals(Object obj) { return (this == obj); }
Java:
public static void main(String[] args) {
ArrayList<Integer> l1 = new ArrayList<>(List.of(1, 2, 3));
LinkedList<Integer> l2 = new LinkedList<>(List.of(1, 2, 3));
System.out.println(l1.equals(l2)); // liefert true
}