Warum kann man nicht ein Objekt mit dem Konstruktor der Oberklasse initialisieren (Java)?
Es handelt sich um folgendes Codebeispiel:
Unterklasse u = new Oberklasse();
u.m();
btw: Ober- und Unterklasse enthalten die Methode m()
Aber wieso funktioniert das nicht?
lg Kath
4 Antworten
Der Grund ist: Die Oberklasse kennt ihre Unterklassen nicht (und soll sie ja auch gar nicht kennen).
keine direkte antwort aber...
nicht jedes tier ist ein hund aber jedes hund ist ein tier
ums weiter auszuführen:
nur weil eine katze ein tier ist, kannst du nicht erwarten dass jede katze bellt (jedes tier != hund)
Vermutlich, weil die erbende Klasse mehr Informationen enthält, die vom Compiler erwartet werden.
Eine Elternklasse kann, muss jedoch nicht diese Informationen liefern.
Andersrum wird es funktionieren, weil eine Kindklasse von den Eltern erbt
Die Kindklasse erbt die Funktionen und Attribute der Elternklasse. Die enthält also mindestens die Informationen der Elternklasse, kann aber beliebig viele zusätzliche Informationen enthalten
nur mal zur logik , du willst das inner mit dem äusseren darstellne .
also du willst vom inneren des universums von aussen auf das universum gucken ... merkste was .
Ah, also generell ist es immer so, dass die Unterklasse mehr Infos enthält als die Oberklasse? Ja, klingt logisch... danke!