C# - Interfaces
Une interface est définie comme un contrat syntaxique que toutes les classes héritant de l'interface doivent respecter. L'interface définit le 'quoi' une partie du contrat syntaxique et les classes dérivées définissent le 'comment' partie du contrat syntaxique.
Les interfaces définissent des propriétés, des méthodes et des événements, qui sont les membres de l'interface. Les interfaces contiennent uniquement la déclaration des membres. Il est de la responsabilité de la classe dérivante de définir les membres. Cela aide souvent à fournir une structure standard que les classes dérivées suivraient.
Les classes abstraites remplissent dans une certaine mesure le même objectif, cependant, elles sont principalement utilisées lorsque seules quelques méthodes doivent être déclarées par la classe de base et que la classe dérivée implémente les fonctionnalités.
Déclarer des interfaces
Les interfaces sont déclarées à l'aide du mot-clé interface. C'est similaire à la déclaration de classe. Les instructions d'interface sont publiques par défaut. Voici un exemple de déclaration d'interface −
public interface ITransactions { // interface members void showTransaction(); double getAmount(); }
Exemple
L'exemple suivant illustre l'implémentation de l'interface ci-dessus −
Démo en directusing 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(); } } }
Lorsque le code ci-dessus est compilé et exécuté, il produit le résultat suivant −
Transaction: 001 Date: 8/10/2012 Amount: 78900 Transaction: 002 Date: 9/10/2012 Amount: 451900
Langue C