Ich arbeite gerade an einem Dateisystem mit funktionen für Zip's etc, und bin darauf auf ein interessantes verhalten gestoßen:
Ich habe mehrere Klassen für eine Datei(noFile, noFile_Permanent, noFile_Memory, noFile_InZip), um eben die verschiedenen Instanzen von Dateien speichern zu können. Die letzten 3 erben nun wiederum von noFile.
Hat man nun allerdings eine Prozedur a la:
Delphi-Quellcode:
function GetOSFile: noFile;
begin
Result := noFile_Permanent.Create;
end;
Landet man, wenn man die Rückgabe dieser Prozedur anspricht, bei den Prozeduren der BasisKlasse noFile (z.B. habe ich eine Methode Length, die bei noFile = 0 zurückgibt, bei Permanet die Länge der Datei), statt bei denen von noFile_Permanent.
Nun zur eigentlichen Frage: Warum geht das überschreiben der Prozeduren verloren?
Nach meinem Verständnis von
OOP sollte man über das Ergebnis doch jetzt die (überschriebenen) Prozeduren von noFile_Permanent ansprechen. Warum ist das nicht so, oder was mache ich falsch?
Dominik C.
Orientierungslos sieht man mehr vom Leben.