AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi T4 = class( T1, T2, T3 ) :: Poly-Klassenvererbung?
Thema durchsuchen
Ansicht
Themen-Optionen

T4 = class( T1, T2, T3 ) :: Poly-Klassenvererbung?

Ein Thema von christian_r · begonnen am 4. Mai 2008 · letzter Beitrag vom 7. Mai 2008
Antwort Antwort
christian_r
(Gast)

n/a Beiträge
 
#1

T4 = class( T1, T2, T3 ) :: Poly-Klassenvererbung?

  Alt 4. Mai 2008, 12:42
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.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: T4 = class( T1, T2, T3 ) :: Poly-Klassenvererbung?

  Alt 4. Mai 2008, 12:53
Interface haben keine Eigenschaften und bei Methoden mit gleichen Signaturen ist das ja egal.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: T4 = class( T1, T2, T3 ) :: Poly-Klassenvererbung?

  Alt 4. Mai 2008, 12:55
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#.
Angehängte Dateien
Dateityp: pdf interfaces_167.pdf (134,1 KB, 15x aufgerufen)
Oliver Hanappi
Besucht meine neue Homepage: http://oli.hux.de
  Mit Zitat antworten Zitat
christian_r
(Gast)

n/a Beiträge
 
#4

Re: T4 = class( T1, T2, T3 ) :: Poly-Klassenvererbung?

  Alt 4. Mai 2008, 16:10
Danke. Ich schaue es mir in Ruhe an.
  Mit Zitat antworten Zitat
christian_r
(Gast)

n/a Beiträge
 
#5

Re: T4 = class( T1, T2, T3 ) :: Poly-Klassenvererbung?

  Alt 7. Mai 2008, 20:47
OK, ich habe mir die PDF grob durchgelesen. Derzeit keine weiteren Fragen, deshalb Problem gelöst. Danke noch mal.
  Mit Zitat antworten Zitat
Benutzerbild von idontwantaname
idontwantaname

Registriert seit: 31. Aug 2004
Ort: Traiskirchen
575 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: T4 = class( T1, T2, T3 ) :: Poly-Klassenvererbung?

  Alt 7. Mai 2008, 21:12
Bitte sehr, kein Problem
Oliver Hanappi
Besucht meine neue Homepage: http://oli.hux.de
  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:21 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