C# - Schnittstellen
Eine Schnittstelle ist als syntaktischer Vertrag definiert, dem alle Klassen, die die Schnittstelle erben, folgen sollten. Die Schnittstelle definiert das 'was' Teil des syntaktischen Vertrages und die abgeleiteten Klassen definieren das 'Wie' Teil des syntaktischen Vertrages.
Schnittstellen definieren Eigenschaften, Methoden und Ereignisse, die Mitglieder der Schnittstelle sind. Schnittstellen enthalten nur die Deklaration der Mitglieder. Es liegt in der Verantwortung der abgeleiteten Klasse, die Mitglieder zu definieren. Es hilft oft bei der Bereitstellung einer Standardstruktur, der die abgeleiteten Klassen folgen würden.
Abstrakte Klassen dienen teilweise dem gleichen Zweck, werden aber meist dann eingesetzt, wenn nur wenige Methoden von der Basisklasse deklariert werden sollen und die ableitende Klasse die Funktionalitäten implementiert.
Schnittstellen deklarieren
Schnittstellen werden mit dem Schlüsselwort interface deklariert. Es ähnelt der Klassendeklaration. Schnittstellenanweisungen sind standardmäßig öffentlich. Es folgt ein Beispiel für eine Schnittstellendeklaration −
public interface ITransactions { // interface members void showTransaction(); double getAmount(); }
Beispiel
Das folgende Beispiel demonstriert die Implementierung der obigen Schnittstelle −
Live-Demousing System.Collections.Generic; using System.Linq; using System.Text; using System; namespace InterfaceApplication { public interface ITransactions { // interface members void showTransaction(); double getAmount(); } public class Transaction : ITransactions { private string tCode; private string date; private double amount; public Transaction() { tCode = " "; date = " "; amount = 0.0; } public Transaction(string c, string d, double a) { tCode = c; date = d; amount = a; } public double getAmount() { return amount; } public void showTransaction() { Console.WriteLine("Transaction: {0}", tCode); Console.WriteLine("Date: {0}", date); Console.WriteLine("Amount: {0}", getAmount()); } } class Tester { static void Main(string[] args) { Transaction t1 = new Transaction("001", "8/10/2012", 78900.00); Transaction t2 = new Transaction("002", "9/10/2012", 451900.00); t1.showTransaction(); t2.showTransaction(); Console.ReadKey(); } } }
Wenn der obige Code kompiliert und ausgeführt wird, erzeugt er das folgende Ergebnis −
Transaction: 001 Date: 8/10/2012 Amount: 78900 Transaction: 002 Date: 9/10/2012 Amount: 451900
C Sprache