Einzelnen Beitrag anzeigen

Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.537 Beiträge
 
Delphi 11 Alexandria
 
#17

AW: Übung Polymorphie

  Alt 20. Nov 2017, 14:48
Ja, wieso denn nicht? Der Cast wäre unnötig gewesen, wenn Du die lokale Variable gleich als TTrapez deklariert hättest, aber das wäre ja am Thema vorbei. Du kannst auch beispielsweise in Routinen, die eine TFigur als Parameter entgegennehmen, prüfen, ob es sich um eine spezialisierte Klasse handelt und sie dementsprechend behandeln.
Delphi-Quellcode:
procedure MachWas(Figur: TFigur);
begin
  if Figur is TTrapez then
    TTrapez(Figur).Hoehe := 20;
end;
Das kann aber leider auch sehr schnell zu sehr unübersichtlichem Code führen, in dem Fall sollte man vielleicht sein Klassendesign überdenken und/oder die Verwendung von Interfaces in Betracht ziehen.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat