Interfaces

Effectué

Une interface est une spécification pour un ensemble de méthodes d’instances publiques. Une interface définit et applique des similitudes entre des classes sans lien entre elles sans avoir à dériver une classe de l’autre. Toutes les interfaces sont publiques, même si vous n’ajoutez pas explicitement le mot-clé public devant le mot-clé interface dans le code classDeclaration. Les méthodes sur une interface sont également publiques.

Pour créer une interface, procédez comme suit :

  1. Dans la fenêtre Explorateur de solutions, cliquez avec le bouton droit de la souris sur le projet, puis cliquez surAjouter.
  2. Dans la boîte de dialogue Nouvel article, sélectionnez Interface, puis tapez un nom pour l’interface.
  3. Cliquez sur Ajouter.

Lorsque vous ajoutez le mot-clé implements sur une déclaration de classe, la classe doit déclarer les méthodes spécifiées par l’interface. Une déclaration de classe peut implémenter plusieurs interfaces. Énumérez les interfaces après la seule occurrence du mot-clé implements et séparez les noms d’interface à l’aide de virgules. Toutes les méthodes d’interface implémentées par une classe doivent être explicitement déclarées comme Publique en utilisant le mot-clé public dans la classe. Une classe qui implémente une interface doit également être déclarée comme Publique. Une interface peut étendre une autre interface en utilisant le mot-clé extends. Cependant, une interface ne peut pas étendre plus d’une interface.

Exemple d’interface

Dans l’exemple suivant, une classe Voiture implémente une interface IDrivable. Le mot clé is est pris en charge et vous permet de tester si une classe implémente une interface.

public interface IDrivable
{
    public int getSpeed()
     {
     }

    public void setSpeed(int newSpeed)
     {
     }
}
class Automobile implements IDrivable
 {
   int m_speed;

   public int getSpeed()
    {
         return m_speed;
    }

   public void setSpeed(int newSpeed)
    {
         m_speed = newSpeed;
    }
 }
class UseAnAutomobile
 {
   void DriveAutomobile()
    {
       IDrivable yourIDrivable;
       Automobile myAutomobile;
       str sTemp = "object is not an IDrivable";
	
       myAutomobile = new Automobile();

       if (myAutomobile is IDrivable)
       {
          yourIDrivable = myAutomobile;
          yourIDrivable.setSpeed(42);
          sTemp = int2str(yourIDrivable.getSpeed());
       }

       Global::info(sTemp);
       return;
    }
}