![]() |
Re: Komponente von TCustomSocket ableiten?
Moin!
Deine letzte Frage verstehe ich nicht, aber das Beispiel ist ein gutes Beispiel dazu. So kannst du in der Basisklasse z.b. die komplette Funktionalität implementieren und alle Aufrufe etc schon einbauen, aber wie es dann später genau implementiert wird bzw. wie gerechnet wird, hängt dann von der abgeleiteten Klasse ab. MfG Muetze1 |
Re: Komponente von TCustomSocket ableiten?
Moin Muetze,
mit meiner letzten Frage meinte ich, das Methoden die als "abstract;" definiert sind, in selbiger Klasse ja irgendwo aufgerufen werden, richtig? |
Re: Komponente von TCustomSocket ableiten?
Moin!
Ob sie aufgerufen werden ist die andere Frage, aber zumindest "... aufgerufen werden können", ja. MfG Muetze1 |
Re: Komponente von TCustomSocket ableiten?
Moin,
also für mich machen abstrakte methoden sonst keinen wirklichen sinn als eben wenn sie in der eigenen klasse bereits aufgerufen werden. Denn wozu wäre sie dann vorher als abstract definiert worden wenn sie nicht unbedingt gebraucht wird? |
Re: Komponente von TCustomSocket ableiten?
Moin!
Zitat:
Du könntest damit auch Entwickler zwingen eine Procedure zu implementieren um auf irgendwas hinzuweisen bzw. eine Procedure zu implementieren die in der Basisklasse nicht gebraucht wird aber in jeder Ableitung genutzt werden muss... Ist an den Haaren herbei gezogen und mir fällt kein Beispiel ein, aber wie ich oben schon geschrieben hatte: Du hast vollkommen Recht damit... - ich wollte nur darauf hinweisen das es kein Zwang ist - im Gegensatz zu dem Zwang die Methode zu implementieren in einer Ableitung... MfG Muetze1 |
Re: Komponente von TCustomSocket ableiten?
Gut :) Danke nochmal für die Erklärung ;)
|
Re: Komponente von TCustomSocket ableiten?
Abstrakte Methoden kannst du dir ähnlich wie Interfaces vorstellen. Wer immer sie implementiert geht eine Art Vertrag mit dir ein.
Damit du die Ableitung benutzen kannst muss sie sich an die Vereinbarung halten und diese Funktionalität implementieren. Member, die für diese Vereinbarung unnütz sind, abstrakt zu deklarieren wäre natürlich totaler Blödsinn und würden das ganze Konzept ad absurdum führen. :? Wenn ich abstrakte Member sehe, gehe ich davon aus, dass ich sie implmentieren muss. Wenn sie der Autor nur aus Jux abstrakt deklariert hat würde ich ihm bei nächster Gelegenheit mit Anlauf in den Hintern treten. :evil: |
Re: Komponente von TCustomSocket ableiten?
Zitat:
|
Re: Komponente von TCustomSocket ableiten?
Wurde eigentlich schon folgender wichtige Grund für Abstraktion genannt? Also:
Man kann - grob gesagt - eine abstract-Methode von TVater aufrufen kann und er guckt automatisch, welchen Typ die aufrufende Instanz besitzt. Abhängig davon, ob die Instanz vom Typ TKind1, TKind2 oder TKind3 ist, wird dann die Implementation der aufgerufenen Methode beim passenden Kind ausgeführt. Das ist ![]() |
Re: Komponente von TCustomSocket ableiten?
Moin!
Nein, das erreiche ich auch mit einer puren virtuellen/dynamischen Methode - nur das ich dort nicht die Sicherheit habe, das die Nachfahren die Methode implementieren. MfG Muetze1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:52 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