Entwickler-Ecke
Delphi Language (Object-Pascal) / CLX - Instanzen: Reine Zuweisung das Gleiche wie Typumwandlung?
Daniel L. - Fr 19.11.10 23:19
Titel: Instanzen: Reine Zuweisung das Gleiche wie Typumwandlung?
Hallo,
ich hätte da noch mal ein Objekt-Frage.
Bewirken die Zuweisungen an Obj in Zeile 20 - 22 das Gleiche?
Obj := ErbObj ist natürlich keine Umwandlung, aber es scheint den Gleichen Effekt zu haben
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24:
| type
TObj = class ..... end;
TErbObj = class (TObj) ..... end;
procedure TForm1.Button1Click(Sender: TObject); var Obj : TObj; ErbObj : TErbObj; begin
ErbObj := TErbObj.Create;
Obj := ErbObj as TObj; Obj := TObj (ErbObj); Obj := ErbObj;
end; |
F34r0fTh3D4rk - Fr 19.11.10 23:26
In eine Vaterklasse muss nicht umgewandelt werden, da der Vater ja keine Methoden oder Attribute hat, die die Kindklasse nicht hat. Das ist ja das tolle an Vererbung: Ich kann mir eine Klasse definieren TGeometricalObjectund davon meinetwegen TTriangle, TRectangle, etc. ableiten und zum Beispiel alle in einem array of TGeometricalObject speichern.
Greift man dann auf die Elemente dieses arrays zu, so kann man dann natürlich nur auf die Methoden und Attribute zugreifen, die schon in der Vaterklasse definiert sind. Ansonsten muss man in den Kind-Typ konvertieren.
Wenns nicht so wäre, würden abstrakte Klassen auch nicht so viel Sinn machen.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!