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).
Kontinuierliche Content Produktion und Markenaufbau sind essentieller Pfeiler von langfristigen Unternehmenserfolg. Das ist mittlerweile auch…
KI-Funktionen beschleunigen die Erholung des PC-Markts. Der Nettogewinn legt um 44 Prozent zu, der Umsatz…
Googles App-Entwickler-Kit dient der Tarnung des schädlichen Codes. Der Sicherheitsanbieter Jamf hält die Schadsoftware für…
Ausgeklügelte Phishing-Kampagne verwendet eine weiterentwickelte Version der Rhadamanthys-Stealer-Malware.
Die EU-Kommission kritisiert die Verknüpfung von Facebook und dem hauseigenen Online-Kleinanzeigendienst. Sie sieht darin einen…
Fast zwei Drittel halten jedoch eine Umsetzung aller Vorgaben von NIS 2 bis Jahresende für…