Interfaces

Completado

Una interfaz es una especificación para un conjunto de métodos de instancia pública. Una interfaz define y aplica similitudes entre clases no relacionadas sin tener que derivar una clase de la otra. Todas las interfaces son públicas, incluso si no agrega explícitamente la palabra clave public delante de la palabra clave interface en el código classDeclaration. Los métodos en una interfaz también son públicos.

Para crear una interfaz, siga estos pasos:

  1. En el Explorador de soluciones, haga clic con el botón derecho en el proyecto y luego seleccione Agregar.
  2. En el cuadro de diálogo Nuevo elemento, seleccione Interfaz y luego introduzca un nombre para la interfaz.
  3. Seleccione Agregar.

Al agregar la palabra clave implements en una declaración de clase, la clase debe declarar los métodos especificados por la interfaz. Una declaración de clase puede implementar múltiples interfaces. Enumere las interfaces después de la aparición única de la palabra clave implements y separe los nombres de la interfaz mediante comas. Todos los métodos de interfaz que implementa una clase deben declararse explícitamente como públicos mediante el uso de la palabra clave public en la clase. Una clase que implementa una interfaz también debe declararse como pública. Una interfaz puede ampliar otra interfaz mediante la palabra clave extends. Sin embargo, una interfaz no puede ampliar más de una interfaz.

Ejemplo de interfaz

En el siguiente ejemplo, una clase Automóvil implementa una interfaz IDrivable. La palabra clave is es compatible y le permite probar si una clase implementa una interfaz.

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