interface-Anweisung
Aktualisiert: November 2007
Deklariert den Namen, die Eigenschaften und die Methoden einer Schnittstelle.
[modifiers] interface interfacename [implements baseinterfaces] {
[interfacemembers]
}
Argumente
modifiers
Optional. Modifizierer, die die Sichtbarkeit und das Verhalten der Eigenschaft steuern.interfacename
Erforderlich. Der Name der interface-Schnittstelle. Entspricht den Standardnamenskonventionen für Variablen.implements
Optional. Ein Schlüsselwort, das angibt, dass die benannte Schnittstelle eine zuvor definierte Schnittstelle implementiert oder dieser Schnittstelle Member hinzufügt. Wenn das Schlüsselwort nicht verwendet wird, wird eine JScript-Standardbasisschnittstelle erstellt.baseinterfaces
Optional. Eine kommagetrennte Liste mit den von interfacename implementierten Schnittstellennamen.interfacemembers
Optional. Bei interfacemembers kann es sich um Methodendeklarationen (durch die function-Anweisung definiert) oder um Eigenschaftendeklarationen (durch die function get-Anweisung und die function set-Anweisung definiert) handeln.
Hinweise
Die Syntax für interface-Deklarationen in JScript ähnelt der Syntax für class-Deklarationen. Eine Schnittstelle entspricht einer class, in der jeder Member abstract ist, und kann nur Eigenschaften- und Methodendeklarationen ohne Funktionstext enthalten. Ein interface darf keine Feld- und Initialisierungsdeklarationen und keine Deklarationen geschachtelter Klassen enthalten. interface kann mit dem Schlüsselwort implements ein oder mehrere interfaces implementieren.
Eine class darf nur eine Basis-class erweitern, jedoch viele interfaces implementieren. Wenn eine class mehrere interfaces implementiert, ist eine Form der Mehrfachvererbung möglich, die einfacher ist als in anderen objektorientierten Sprachen wie C++.
Beispiel
Der folgende Code veranschaulicht die Vererbung einer Implementierung an mehrere Schnittstellen.
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();
Ausgabe dieses Programms:
This the form name.
This the form name.
This the form name.