Hallo zusammen,
habe etliche Beispiele und Definitionen/Erklärungen über Polymorphie gelesen, verstehe allerdings noch immer nicht wirklich den Sinn dahinter. Als Beispiel möchte ich gerne auf JAVA: 5.4 Polymorphie verweisen.
Die Sache mit der Vererbung und Überschreibung der Methode ist klar. Was ich nicht verstehe ist in der main Methode (unten) die Instanziierung mittels:
Angestellter a2 = new Abteilungsleiter();
Warum ist dort nicht einfach "Abteilungsleiter a2 = new Abteilungsleiter();"?
Damit hätte man genauso Zugriff auf alle Attribute aus der Klasse Angestellter (da Abteilungsleiter Subklasse von Angestellter ist) und
ich wäre nicht verwirrt! Soll das heissen, das die Referenz a2 zur Klasse Angestellter gehört (zum Datentyp Angestellter), aber mit den Attributen/Methoden (eben
dem Attribut Abteilung mehr) instanziiert wird? Wenn ja, welcher Sinn steckt dahinter, wenn ich es auch mit "Abteilungsleiter a2 = new Abteilungsleiter();" machen kann?
Bin bisher davon ausgegangen, das man Objekekte mittels "Klasse Ref = new Klasse();" instanziert und nicht auf einmal mit zwei verschiedenen Werten bei der Klasse (auch wenn es eine Subklasse/Superklasse ist).
Vielen Dank schon mal
habe etliche Beispiele und Definitionen/Erklärungen über Polymorphie gelesen, verstehe allerdings noch immer nicht wirklich den Sinn dahinter. Als Beispiel möchte ich gerne auf JAVA: 5.4 Polymorphie verweisen.
Die Sache mit der Vererbung und Überschreibung der Methode ist klar. Was ich nicht verstehe ist in der main Methode (unten) die Instanziierung mittels:
Angestellter a2 = new Abteilungsleiter();
Warum ist dort nicht einfach "Abteilungsleiter a2 = new Abteilungsleiter();"?
Damit hätte man genauso Zugriff auf alle Attribute aus der Klasse Angestellter (da Abteilungsleiter Subklasse von Angestellter ist) und
ich wäre nicht verwirrt! Soll das heissen, das die Referenz a2 zur Klasse Angestellter gehört (zum Datentyp Angestellter), aber mit den Attributen/Methoden (eben
dem Attribut Abteilung mehr) instanziiert wird? Wenn ja, welcher Sinn steckt dahinter, wenn ich es auch mit "Abteilungsleiter a2 = new Abteilungsleiter();" machen kann?
Bin bisher davon ausgegangen, das man Objekekte mittels "Klasse Ref = new Klasse();" instanziert und nicht auf einmal mit zwei verschiedenen Werten bei der Klasse (auch wenn es eine Subklasse/Superklasse ist).
Vielen Dank schon mal