Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi T4 = class( T1, T2, T3 ) :: Poly-Klassenvererbung? (https://www.delphipraxis.net/113192-t4-%3D-class-t1-t2-t3-poly-klassenvererbung.html)

christian_r 4. Mai 2008 11:42


T4 = class( T1, T2, T3 ) :: Poly-Klassenvererbung?
 
Folgendes habe ich gestern durch ein anderes Problem gefunden:

Delphi-Quellcode:
TComponent = class(TPersistent, IInterface, IInterfaceComponentReference)
  // ...
end;
1. Werden alle Vorfahren zusammengeführt?
2. Wenn 1. = ja, dann: Mal angenommen, Eigenschaften, Methoden oder Events sind mind. 2 Mal in den Vorfahren vorhanden, überschreiben sich dann diese nach der Vererbungsreihenfolge? Beispiel (nur theoretisch): TPersistent hat eine Methode Test und TInterface ebenso, überschreibt TInterface.Test die Deklaration von TPersistent.Test?

Ich werde es selber auch mal ausprobieren, aber es gibt sicher ein paar Hinweise, die wichtig dazu sind.

mkinzler 4. Mai 2008 11:53

Re: T4 = class( T1, T2, T3 ) :: Poly-Klassenvererbung?
 
Interface haben keine Eigenschaften und bei Methoden mit gleichen Signaturen ist das ja egal.

idontwantaname 4. Mai 2008 11:55

Re: T4 = class( T1, T2, T3 ) :: Poly-Klassenvererbung?
 
Liste der Anhänge anzeigen (Anzahl: 1)
Achtung: Interfaces sind keine Klassen! Und zwar eben aus diesem Grund, um nämlich Mehrfachvererbung und die unerwünschten Nebeneffekte wie das Überlappen von Methoden/Eigenschaften etc. zu verhindern, was problematisch werden kann.
Ich weiß zwar nicht, wie es genau in Delphi ausschaut, jedoch kann man in C# explizit angeben, welche Methode zu welchem Interface zugeordnet ist. Desweiteren ist zu beachten, dass Interfaces nur vorgeben, welche Methoden die Klasse, die das Interface implementiert, haben soll, selbst aber nur aus Definition besteht. Basisklassen hingegen können ja selbst ausführbaren Quellcode enthalten, sofern sie nicht abstrakt sind.

Siehe dazu auch http://www.delphi-treff.de/sprachen/...al/interfaces/ oder den in diesem Post angehängten Auszug aus meiner Fachbereichsarbeit über Objektorientiertes Programmieren in C#.

christian_r 4. Mai 2008 15:10

Re: T4 = class( T1, T2, T3 ) :: Poly-Klassenvererbung?
 
Danke. Ich schaue es mir in Ruhe an.

christian_r 7. Mai 2008 19:47

Re: T4 = class( T1, T2, T3 ) :: Poly-Klassenvererbung?
 
OK, ich habe mir die PDF grob durchgelesen. Derzeit keine weiteren Fragen, deshalb Problem gelöst. Danke noch mal. :)

idontwantaname 7. Mai 2008 20:12

Re: T4 = class( T1, T2, T3 ) :: Poly-Klassenvererbung?
 
Bitte sehr, kein Problem :)


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:54 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