![]() |
class abstract Definition
Hallo zusammen,
ich frage mich mal wieder generell, wie wird class abstract benutzt. ![]() Zitat:
![]() Aber wozu sollte ich dann
Delphi-Quellcode:
setzen ?
className = class abstract
Ich habe schon geforscht, aber dazu gibt es nicht viel Info anscheinend. So wie ich das bis jetzt sehe - reichen die abstrakten Methoden der Klasse um sie abstrakt zu machen, und es ist nicht nötig im Klassennheader - die Definition nur im Klassenheader reicht aber auch nicht um alle Methoden abstract zu machen Also wozu sollte ich class abstract dann gut sein, zum doppel-moppeln ? Wer kann mir da auf die Sprünge helfen wozu ich "class abstract" benutzen sollte ? Rollo |
AW: class abstract Definition
Das
Delphi-Quellcode:
ist in Delphi mehr ein Hinweis. Es erspart dir nicht, die Methoden zusätzlich als
class abstract
Delphi-Quellcode:
zu kennzeichnen. Tatsächlich habe ich absolut gar keine Auswirkungen feststellen können (ich hatte vor dem Testen die Theorie, dass Delphi schon zur Compile-Time einen Fehler schmeißt, wenn man versucht Instanzen einer abstrakten Klasse zu erstellen).
abstract
Delphi-Quellcode:
auf der anderen Seite verhindert tatsächlich schon zur Compile-Time, dass man von der Klasse ableiten kann.
class sealed
|
AW: class abstract Definition
Diese Option richtet sich an Entwickler aus anderen Sprachen, bei denen Klassen abstrakt sind, sobald eine Methode das ist. In Delphi ist das nun mal nicht so. Das sehe ich als Vorteil andere als eine Riesenmanko. Mit dieser kleinen Erweiterung der Sprache kann man das Verhalten erzwingen.
|
AW: class abstract Definition
Wenn ich mich richtig erinnere wurde das zu Delphi-Net Zeiten eingeführt.....
Ist wohl noch ein Überbleibsel aus der NET Welt. |
AW: class abstract Definition
Ok, dankesehr für die erleuchtenden Antworten.
Ich dachte schon das ich hier das Prinzip nicht richtig verstehe. Rollo |
AW: class abstract Definition
In C# kann man von abstrakten Klassen keine Instanzen erzeugen, leider haben sie diese Restriktion niemals in den Delphi Compiler eingebaut (der für .NET konnte das wohl) :(
Ist auch schon lange reported: ![]() |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:54 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