AGB  ·  Datenschutz  ·  Impressum  







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

von zwei Klassen erben ?

Ein Thema von gmc616 · begonnen am 24. Jul 2006 · letzter Beitrag vom 24. Jul 2006
Antwort Antwort
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#1

von zwei Klassen erben ?

  Alt 24. Jul 2006, 02:28
Moin moin Delphianer,

ist es möglich eine Klasse zu erstellen, die von zwei Klassen erbt?

ein ganz simples Beispiel:
Delphi-Quellcode:
Type TKlasseA = class
  public
    strA : string;
End;

Type TKlasseB = class
  public
    IntB : integer;
End;
Die ZielKlasse soll dann so aussehen:
Delphi-Quellcode:
Type TKlasseC = class (TKlasseA + TKlasseB)
  public
    strA : string; // aus TKlasseA
    IntB : integer; // aus TKlasseB
End;
Die TKlasseC soll von den beiden Klassen TKlasseA und TKlasseB erben und so die Variablen strA und IntB anbieten können.
Ist sowas möglich? Wenn ja, wie?

Grüße
gmc
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: von zwei Klassen erben ?

  Alt 24. Jul 2006, 05:30
Delphi unterstützt, wie auch java + c# keine Mehrfachvererbung.
Markus Kinzler
  Mit Zitat antworten Zitat
Robert Marquardt
(Gast)

n/a Beiträge
 
#3

Re: von zwei Klassen erben ?

  Alt 24. Jul 2006, 05:30
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.
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#4

Re: von zwei Klassen erben ?

  Alt 24. Jul 2006, 06:38
Zitat von Robert Marquardt:
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.
Wenn ich diese Interfacesache richtig verstanden habe sieht es zwar aus wie eine Vererbung ist aber keine. Jedenfalls keine
Vererbung im OOP Sinn.
Mit der Angabe von
TMYInterfaceClass = class(TInterfacedObjekt,IMyInt1, IMyInt2) sagst man, dass die Klasse von TInterfacedObjekt erbt (OOP-mäßig) und zusätzlich die
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
I come from outer space to save the human race
  Mit Zitat antworten Zitat
lizardking

Registriert seit: 2. Sep 2005
76 Beiträge
 
Delphi 7 Enterprise
 
#5

Re: von zwei Klassen erben ?

  Alt 24. Jul 2006, 06:47
Zitat von Robert Marquardt:
Es ist nur die Vererbungsvariante Aggregation moeglich und das nur per Interface.
Hab ich irgendwas verpasst oder seit wann ist Aggregation eine "Vererbungsvariante" ?
  Mit Zitat antworten Zitat
Elvis

Registriert seit: 25. Nov 2005
Ort: München
1.909 Beiträge
 
Delphi 2010 Professional
 
#6

Re: von zwei Klassen erben ?

  Alt 24. Jul 2006, 07:05
Zitat von Jens Schumann:
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.
Dank interface delegation in Delphi32 kann die Implementierung an eine weitere Klasse delegiert werden. Und dadurch kann man diese Funktionialität an mehreren Stellen benutzen.
Siehe hier.
Robert Giesecke
I’m a great believer in “Occam’s Razor,” the principle which says:
“If you say something complicated, I’ll slit your throat.”
  Mit Zitat antworten Zitat
Benutzerbild von Jens Schumann
Jens Schumann

Registriert seit: 27. Apr 2003
Ort: Bad Honnef
1.644 Beiträge
 
Delphi 2009 Professional
 
#7

Re: von zwei Klassen erben ?

  Alt 24. Jul 2006, 08:02
Zitat von ElvisDank:
interface delegation in Delphi32 kann die Implementierung an eine weitere Klasse delegiert werden. Und dadurch kann man diese Funktionialität an mehreren Stellen benutzen.
Siehe hier.
Danke
I come from outer space to save the human race
  Mit Zitat antworten Zitat
gmc616

Registriert seit: 25. Jun 2004
Ort: Jena
627 Beiträge
 
Delphi 10.3 Rio
 
#8

Re: von zwei Klassen erben ?

  Alt 24. Jul 2006, 11:56
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.
  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:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz