C# für Einsteiger: Klassenschnittstellen

Nun wird es Zeit, dass wir uns einmal anhand einiger Klassen anschauen, wie Schnittstellen implementiert werden. Dazu werde ich IComparable implementieren, die eine Reihe sortierter Objekte desselben Typs zulässt, mit denen die Schnittstelle implementiert wird. Das Beispiel verwendet eine Dinosaurier-Basisklasse und spezielle Dinosaurier-Klassen, Allosaurus, TRex etc., die von der Dinosaurier-Basisklasse abgeleitet sind. Dies ist vielleicht im Alltag nicht besonders nützlich (immerhin sind die Dinosaurier ja bereits ausgestorben), doch sollte es Ihnen verdeutlichen, wie man eine Schnittstelle implementiert.

Listing A liefert die Dinosaurier-Basisklasse, ohne irgendwelche zu implementierenden Schnittstellen festzulegen.

Wie Sie sehen, ist die Dinosaurier-Klasse eine recht schlichte Angelegenheit: nur eine öffentliche Eigenschaft (Name) und ein Feld (Length).

Als nächstes wollen wir einige spezifische Dinosaurier-Klassen hinzufügen, die per Vererbung von Dinosaurier abgeleitet werden (siehe Listing B).

Nun wenden wir uns wieder der Dinosaurier-Klasse zu und implementieren die IComparable-Schnittstelle, indem wir denselben Doppelpunkt-Operator (:) wie für die Vererbung verwenden:


Durch die Implementierung der IComparable-Schnittstelle in der Dinosaurier-Klasse wird diese natürlich auch in allen abgeleiteten Klassen, wie Allosaurus und TRex, implementiert. Listing C zeigt diese Implementierung der Dinosaurier-Klasse.

So wie der Code jetzt aussieht, ist IComparable zwar in der Vererbungsklausel der Dinosaurier-Klasse spezifiziert, doch gibt es in Dinosaurier oder seinen abgeleiteten Klassen keine tatsächliche Implementierung der im IComparable-„Vertrag“ festgelegten Mitglieder. Wenn Sie versuchen, diesen Code zu kompilieren, wird sich das Projekt nicht ausführen lassen, sondern Sie werden eine Syntaxfehlermeldung erhalten, die Sie auf das Problem hinweist (Abbildung B).

Themenseiten: Anwendungsentwicklung, Software

Fanden Sie diesen Artikel nützlich?
Content Loading ...
Whitepaper

Artikel empfehlen:

Neueste Kommentare 

Noch keine Kommentare zu C# für Einsteiger: Klassenschnittstellen

Kommentar hinzufügen

Kommentare sind bei diesem Artikel deaktiviert.