Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Prism 3 Fragen zu Interfaces in Delphi.Net (https://www.delphipraxis.net/66478-3-fragen-zu-interfaces-delphi-net.html)

winx 30. Mär 2006 08:30


3 Fragen zu Interfaces in Delphi.Net
 
Guten Morgen,

ich hab mal 3 Fragen zu Interfaces unter Delphi.Net...

1. Wie kann ich in Delphi.Net ein Interface implementieren?
2. Kann ich auch mehrere Interfaces implementieren?
3. Wie "vererbt" man Interfaces
Bsp: Interface A ist eine Spezialisierung von B und B wiederum von C... schreibt man
da in A wieder alle Funktionen von B rein oder implementiert A einfach B???

Danke,
winx

jenbru 30. Mär 2006 10:17

Re: 3 Fragen zu Interfaces in Delphi.Net
 
Hallo,

Zitat:

Zitat von winx
1. Wie kann ich in Delphi.Net ein Interface implementieren?
2. Kann ich auch mehrere Interfaces implementieren?
3. Wie "vererbt" man Interfaces
Bsp: Interface A ist eine Spezialisierung von B und B wiederum von C... schreibt man
da in A wieder alle Funktionen von B rein oder implementiert A einfach B???

zu 1)
Das ist eigentlich ganz einfach:

Delphi-Quellcode:
//Ein Interface
type
  IAnInterface = interface
    procedure AMethod;
  end;

//Eine mögliche Implementierung
type
 TAnImplementation = class(TObject, IAnInterface)
   procedure AMethod;
 end;
zu 2)
Natürlich:

Delphi-Quellcode:
//Noch ein Interface
type
  IAnotherInterface = interface
    procedure AnotherMethod;
  end;

//Klasse implementiert jetzt beide Interfaces
type
 TAnImplementation = class(TObject, IAnInterface, IAnotherInterface)
   procedure AMethod;
   procedure AnotherMethod;
 end;
zu 3)
Weder noch.
Ein Interface erbt wie eine Klasse alle Methoden vom Vorfahr-Interface. Der Vorfahr alle Interfaces in Delphi ist IInterface.
Ein Interface ist somit verpflichtet alle Methoden des Vorfahr-Interfaces zu implementieren. Das es das selbst aber nicht kann
geht die Verpflichtung auf die Klasse über, die eine Implementierung des Interface anbietet:


Delphi-Quellcode:
type
  IC = interface
    procedure C;
  end;

type
  IB = interface(IC)
    procedure B;
  end;

type
  IA = interface(IB)
    procedure A;
  end;

type
  TImpl = class(TObject, IA)
    procedure A;
    procedure B;
    procedure C;
  end;
Das steht aber auch alles in der OH von D2005 im Kapitel "Objekt-Interfaces".

Schönen Gruß,
Jens

Elvis 30. Mär 2006 10:22

Re: 3 Fragen zu Interfaces in Delphi.Net
 
Auch wenn ich hier nix schreiben wollte...
@Jens du verwechselst D32 und D.Net ;)

winx 30. Mär 2006 10:27

Re: 3 Fragen zu Interfaces in Delphi.Net
 
Hallo Jens,

danke leider ist bei D2006 KEIN Handbuch dabei :-(

Gruß,
winx

sakura 30. Mär 2006 10:29

Re: 3 Fragen zu Interfaces in Delphi.Net
 
Zitat:

Zitat von winx
danke leider ist bei D2006 KEIN Handbuch dabei :-(

Aber eine sehr umfangreiche Online-Hilfe, die man im Menü unter Hilfe findet. Da filterst Du nach Delphi.NET und suchst nach Interface :wall:

...:cat:...

jenbru 30. Mär 2006 10:38

Re: 3 Fragen zu Interfaces in Delphi.Net
 
Hallo,

@Elvis Wie jetzt? Steh ich auf dem Schlauch? :gruebel:
Die Verwendung von Interfaces ist in Delphi.NET doch gleich, außer das sich die GC um die Referenzzählung
kümmert, oder?

Bis denne,
Jenne

Khabarakh 30. Mär 2006 11:30

Re: 3 Fragen zu Interfaces in Delphi.Net
 
Ein Interface erbt aber nicht mehr implizit von IInterface (ob es von Object erbt, ist nicht so ganz sicher :zwinker: ). Ob Borland sich daran hält, will ich lieber gar nicht erst nachschauen...
Außerdem sollte der T-Präfix ab .NET für ewig ruhen.

winx 30. Mär 2006 11:31

Re: 3 Fragen zu Interfaces in Delphi.Net
 
ok, geb mich geschlagen :angel:

Also danke für die Hilfe :bouncing4:

Elvis 30. Mär 2006 11:58

Re: 3 Fragen zu Interfaces in Delphi.Net
 
Zitat:

Zitat von Khabarakh
ob es von Object erbt, ist nicht so ganz sicher :zwinker:

Ich hoffe dein -> :zwinker: <- bezog sich auf die traurige Tatsache, dass der Artikel von einem VB-Monk geschrieben wurde.
ToString um zu Object zu kommen -> So ein Lötzinn... *kopfschüttel*

Khabarakh 30. Mär 2006 12:59

Re: 3 Fragen zu Interfaces in Delphi.Net
 
Den VB-Teil habe ich übersprungen :zwinker: . Das einzig Interessante ist ja die Diskrepanz zwischen Doku und Implementation, was VB oder der VS-Classbrowser dazu sagt, ist mir ziemlich egal.


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