Hallo,
Ich bereite mich gerade auf eine Informatik Prüfung vor und habe eine kleine Frage zur Objekterzeugung:
Klassendiagramm Bsp:
abstract class Element
class NumberOperand extends Element
abstract class Operator extends Element
class Plus extends Operator
Sowohl NumberOperand, als auch Plus haben Attribute/Methoden der Klasse Element.
Normalerweise würde ich nun bei einer Objekterzeugung von Plus bzw. NumberOperand folgendermaßen vorgehen:
- Element plus = new Plus();
- Element o1 = new NumberOperand();
Bei allen Lösungen wurde es auch immer so gemacht, wenn ähnliche Klassendiagramme vorlagen.
Nur bei diesem Beispiel wurden die Objekte folgendermaßen erzeugt:
- Operator plus = new Plus();
- Element 01 = new NumberOperand();
Also wurde als Typ des zu erzeugenden Objekts jeweils die nächst höhere abstrakte Oberklasse genommen, anstatt einfach nur die oberste zu nehmen.
Meine Frage ist nun was der Unterschied ist. Macht es überhaupt einen Unterschied, oder ist es egal?
Mir ist es absolut unklar warum das hier auf einmal so gemacht wurde und finde auch durchs googeln nichts zu diesem Thema. Soweit ich das bei der weiteren Lösung der kompletten Aufgabe beurteilen kann, ist es scheinbar egal. Bin aber absoluter Java-Noob und würde einfach gerne sicher gehen....
Ich bereite mich gerade auf eine Informatik Prüfung vor und habe eine kleine Frage zur Objekterzeugung:
Klassendiagramm Bsp:
abstract class Element
class NumberOperand extends Element
abstract class Operator extends Element
class Plus extends Operator
Sowohl NumberOperand, als auch Plus haben Attribute/Methoden der Klasse Element.
Normalerweise würde ich nun bei einer Objekterzeugung von Plus bzw. NumberOperand folgendermaßen vorgehen:
- Element plus = new Plus();
- Element o1 = new NumberOperand();
Bei allen Lösungen wurde es auch immer so gemacht, wenn ähnliche Klassendiagramme vorlagen.
Nur bei diesem Beispiel wurden die Objekte folgendermaßen erzeugt:
- Operator plus = new Plus();
- Element 01 = new NumberOperand();
Also wurde als Typ des zu erzeugenden Objekts jeweils die nächst höhere abstrakte Oberklasse genommen, anstatt einfach nur die oberste zu nehmen.
Meine Frage ist nun was der Unterschied ist. Macht es überhaupt einen Unterschied, oder ist es egal?
Mir ist es absolut unklar warum das hier auf einmal so gemacht wurde und finde auch durchs googeln nichts zu diesem Thema. Soweit ich das bei der weiteren Lösung der kompletten Aufgabe beurteilen kann, ist es scheinbar egal. Bin aber absoluter Java-Noob und würde einfach gerne sicher gehen....