C # - Interfaces

Une interface est définie comme un contrat syntaxique que toutes les classes héritant de l'interface doivent suivre. L'interface définit le'what' partie du contrat syntaxique et les classes dérivées définissent le 'how' partie du contrat syntaxique.

Les interfaces définissent les propriétés, les méthodes et les é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érivée de définir les membres. Cela aide souvent à fournir une structure standard que les classes dérivantes suivraient.

Les classes abstraites servent 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éclaration d'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 -

using 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