![]() |
von zwei Klassen erben ?
Moin moin Delphianer,
ist es möglich eine Klasse zu erstellen, die von zwei Klassen erbt? ein ganz simples Beispiel:
Delphi-Quellcode:
Die ZielKlasse soll dann so aussehen:
Type TKlasseA = class
public strA : string; End; Type TKlasseB = class public IntB : integer; End;
Delphi-Quellcode:
Die TKlasseC soll von den beiden Klassen TKlasseA und TKlasseB erben und so die Variablen strA und IntB anbieten können.
Type TKlasseC = class (TKlasseA + TKlasseB)
public strA : string; // aus TKlasseA IntB : integer; // aus TKlasseB End; Ist sowas möglich? Wenn ja, wie? Grüße gmc |
Re: von zwei Klassen erben ?
Delphi unterstützt, wie auch java + c# keine Mehrfachvererbung.
|
Re: von zwei Klassen erben ?
Es ist nur die Vererbungsvariante Aggregation moeglich und das nur per Interface.
Schau dich doch einfach in den Delphi-Sourcen um. Classes.TStreamAdapter waere ein Beispiel. Es implementiert einen TStream der sich auf einen OLE IStream von Windows stuetzt. Es ist also nur moeglich mehrere Interfaces in einer Delphi-Klasse zu implementieren. Ich habe da schon Beispiele mit Vererbung von 6-8 Interfaces gesehen. |
Re: von zwei Klassen erben ?
Zitat:
Vererbung im OOP Sinn. Mit der Angabe von
Delphi-Quellcode:
sagst man, dass die Klasse von TInterfacedObjekt erbt (OOP-mäßig) und zusätzlich die
TMYInterfaceClass = class(TInterfacedObjekt,IMyInt1, IMyInt2)
Interfaces IMyInt1 u. IMyInt2 unterstützt. Für diese Unterstützung müssen aber in der Klasse TMYInterfaceClass die Methoden der Interfaces IMyInt1 u. IMyInt2 implmentieren. Das ist der kleine aber feine Unterschied. Großer Vorteil: Die damit einhergehende Zuweisungskompatibilität zu den Interfaces IMyInt1 u. IMyInt2 |
Re: von zwei Klassen erben ?
Zitat:
|
Re: von zwei Klassen erben ?
Zitat:
Siehe ![]() |
Re: von zwei Klassen erben ?
Zitat:
|
Re: von zwei Klassen erben ?
Hmmm ... per Interface also. Sieht so aus, als ob mir das genügen würde.
Dann werd ich mich mal über Interfaces belesen und das ausprobieren. Danke euch. :thumb: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:49 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