AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Frage zur Vererbung von Methoden

Ein Thema von Captain Albern · begonnen am 15. Feb 2019 · letzter Beitrag vom 18. Feb 2019
Antwort Antwort
Captain Albern

Registriert seit: 15. Feb 2019
11 Beiträge
 
#1

AW: Frage zur Vererbung von Methoden

  Alt 15. Feb 2019, 08:54
Danke Klaus, der Hinweis ab "abstract" hat gefehlt. Es funktioniert jetzt so, wie ich es mir vorstelle.

Zu der Frage:
Warum denkst Du, dass hier: ... TProtoBlock.draw aufgerufen wird?

Ich habe Test-Code eingetragen, der mir zeigt, welche Methode aufgerufen wird. Außerdem habe ich den Code mit dem Debugger schrittweise durchlaufen lassen.
  Mit Zitat antworten Zitat
Captain Albern

Registriert seit: 15. Feb 2019
11 Beiträge
 
#2

AW: Frage zur Vererbung von Methoden

  Alt 15. Feb 2019, 08:57
Für spätere Leser, die vielleicht die gleiche Frage gesucht haben und hier gelandet sind, ich habe folgendes geändert.

In TProtoBlock, die Methode auf abstract gesetzt und aus dem Implementation-Teil entfernt...
procedure Draw(var Dst:TImage);virtual;abstract; In TBitmapBlock ein override eingefügt. Ohne das gibt es zur Laufzeit einen Fehler...
procedure Draw(var Dst:TImage);override; Vielen Dank nochmal für die schnelle Hilfe !
  Mit Zitat antworten Zitat
Jumpy

Registriert seit: 9. Dez 2010
Ort: Mönchengladbach
1.740 Beiträge
 
Delphi 6 Enterprise
 
#3

AW: Frage zur Vererbung von Methoden

  Alt 15. Feb 2019, 09:40
"Polymorphie" ist meine ich das Stichwort/Prinzip, aus der Objektorientierten Programmierung, das du hier benutzen willst und was du zuletzt herausgefunden hast, ist die Art und Weise, wie man es in Delphi macht/deklariert.

Nur der Vollständigkeit halber, müsste man glaube ich sagen, dass das "abstract" keine Pflicht ist, aber hier wohl Sinn macht. Bei Mehrstufiger Vererbung ist vielleicht in der untersten Ebene eine Methode als abstract+virtual deklariert, in den darüberliegenden dann ggf. als override+(ggf. wieder virtual).
Hoffe ich hab das jetzt richtig beschrieben?
Ralph
  Mit Zitat antworten Zitat
Dennis07

Registriert seit: 19. Sep 2011
Ort: Deutschland
496 Beiträge
 
Delphi 12 Athens
 
#4

AW: Frage zur Vererbung von Methoden

  Alt 18. Feb 2019, 04:36
Ohne das gibt es zur Laufzeit einen Fehler...
Kommt immer drauf an. Wenn du eine abstrakte Methode aufrufst, dann ja. Ohne override steht da implizit immer "reintroduce", allerdings wird, anders als beim expliziten "reintroduce" immer eine Wahrnung ausgegeben.
Solltest du also die neu eingeführte Methode anstatt der ursprünglichen aufrufen, bekommst du keine Fehlermeldung. Ein "inherited" ist nebenbei bemerkt auch in so einem Fall möglich.
Dennis
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:14 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz