Interfacce

Completato

Un'interfaccia è una specifica per un insieme di metodi di istanza pubblica. Un'interfaccia definisce e applica le somiglianze tra classi non correlate senza derivare una classe dall'altra. Tutte le interfacce sono pubbliche, anche se non si aggiunge esplicitamente la parola chiave public davanti alla parola chiave interface nel codice classDeclaration. Anche i metodi di un'interfaccia sono pubblici.

Per creare un'interfaccia, effettuare i seguenti passaggi:

  1. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto e selezionare Aggiungi.
  2. Nella finestra di dialogo Nuovo articolo selezionare Interfaccia e immettere un nome per l'interfaccia.
  3. Selezionare Aggiungi.

Quando si aggiunge la parola chiave implements per una dichiarazione di classe, la classe deve dichiarare i metodi specificati dall'interfaccia. Una dichiarazione di classe può implementare più interfacce. Elencare le interfacce dopo la singola occorrenza della parola chiave implements e separare i nomi dell'interfaccia con le virgole. Tutti i metodi di interfaccia implementati da una classe devono essere dichiarati esplicitamente come pubblici usando la parola chiave public nella classe. Anche una classe che implementa un'interfaccia deve essere dichiarata pubblica. Un'interfaccia può estendere un'altra interfaccia usando la parola chiave extends. Tuttavia un'interfaccia non può estendere più di un'interfaccia.

Esempio di interfaccia

Nell'esempio seguente, una classe Automobile implementa un'interfaccia IDrivable. La parola chiave is è supportata e consente di verificare se una classe implementa un'interfaccia.

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;
    }
}