C# - Interfaces
Een interface wordt gedefinieerd als een syntactisch contract dat alle klassen die de interface erven, moeten volgen. De interface definieert het 'wat' een deel van het syntactische contract en de afgeleide klassen definiëren het 'hoe' onderdeel van het syntactische contract.
Interfaces definiëren eigenschappen, methoden en gebeurtenissen, die de leden van de interface zijn. Interfaces bevatten alleen de verklaring van de leden. Het is de verantwoordelijkheid van de afgeleide klasse om de leden te definiëren. Het helpt vaak bij het bieden van een standaardstructuur die de afgeleide klassen zouden volgen.
Abstracte klassen hebben tot op zekere hoogte hetzelfde doel, maar ze worden meestal gebruikt wanneer er maar een paar methoden door de basisklasse moeten worden gedeclareerd en de afgeleide klasse de functionaliteiten implementeert.
Interfaces declareren
Interfaces worden gedeclareerd met behulp van het interface-trefwoord. Het is vergelijkbaar met klassendeclaratie. Interface-instructies zijn standaard openbaar. Hieronder volgt een voorbeeld van een interfacedeclaratie −
public interface ITransactions { // interface members void showTransaction(); double getAmount(); }
Voorbeeld
Het volgende voorbeeld demonstreert de implementatie van de bovenstaande interface −
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(); } } }
Wanneer de bovenstaande code wordt gecompileerd en uitgevoerd, levert dit het volgende resultaat op −
Transaction: 001 Date: 8/10/2012 Amount: 78900 Transaction: 002 Date: 9/10/2012 Amount: 451900
C Taal