interface (Instrucción)
Declara el nombre de una interfaz, así como las propiedades y métodos que contiene.
[modifiers] interface interfacename [implements baseinterfaces] {
[interfacemembers]
}
Argumentos
modifiers
Opcional. Modificadores que controlan la visibilidad y el comportamiento de la propiedad.interfacename
Obligatorio. Nombre de la interface. Sigue las convenciones de nomenclatura estándar de las variables.implements
Opcional. Palabra clave que indica que la interfaz con nombre implementa o agrega miembros a una interfaz definida anteriormente. Si no se utiliza esta palabra clave, se crea una interfaz base estándar de JScript.baseinterfaces
Opcional. Lista de nombres de interfaz separados con comas que implementa interfacename.interfacemembers
Opcional. El parámetro interfacemembers puede referirse tanto a declaraciones de método (definidas con la instrucción function) como a declaraciones de propiedad (definidas con las instrucciones function get y function set).
Comentarios
La sintaxis de las declaraciones de interface en JScript es similar a la de las declaraciones de class. Una interfaz es como una clase (class) en la que cada miembro es abstract; sólo puede contener declaraciones de propiedad y de método sin cuerpos de función. Una interfaz (interface) puede no contener declaraciones de campo, declaraciones de inicializador o declaraciones de clase anidada. Una interface puede implementar una o más interfaces utilizando la palabra clave implements.
Una clase puede ampliar sólo una clase base, pero puede implementar muchas interfaces. Esta implementación de varias interfaces por parte de una sola clase hace posible una forma de herencia múltiple más sencilla que en otros lenguajes orientados a objetos, como C++.
Ejemplo
El siguiente código muestra cómo varias interfaces pueden heredar una implementación:
interface IFormA {
function displayName();
}
// Interface IFormB shares a member name with IFormA.
interface IFormB {
function displayName();
}
// Class CForm implements both interfaces, but only one implementation of
// the method displayName is given, so it is shared by both interfaces and
// the class itself.
class CForm implements IFormA, IFormB {
function displayName() {
print("This the form name.");
}
}
// Three variables with different data types, all referencing the same class.
var c : CForm = new CForm();
var a : IFormA = c;
var b : IFormB = c;
// These do exactly the same thing.
a.displayName();
b.displayName();
c.displayName();
El resultado de este programa es:
This the form name.
This the form name.
This the form name.