Implements キーワードおよび Implements ステートメント
更新 : 2007 年 11 月
Visual Basic 予約語である Implements は、2 つの方法で使用されます。Implements ステートメントは、クラスまたは構造体によってインターフェイスが実装されていることを表します。Implements キーワードは、クラス メンバまたは構造体メンバによって、特定のインターフェイス メンバが実装されていることを表します。
ステートメントの実装
クラスまたは構造体によって、1 つ以上のインターフェイスが実装されている場合、Class ステートメントまたは Structure ステートメントの直後に、Implements ステートメントを含める必要があります。Implements ステートメントには、クラスによって実装されるインターフェイスのコンマ区切りの一覧が必要です。クラスまたは構造体には、Implements キーワードを使用して、すべてのインターフェイス メンバが実装される必要があります。
Implements キーワード
Implements キーワードには、実装されるインターフェイス メンバのコンマ区切りの一覧が必要です。通常、1 つのインターフェイス メンバだけが指定されますが、複数のメンバを指定することもできます。インターフェイス メンバの仕様は、クラス内の Implements ステートメントで指定する必要のあるインターフェイス名、ピリオド、および実装するメンバ関数、プロパティ、またはイベントの名前から構成されます。インターフェイス メンバを実装するメンバの名前には有効な識別子を使用できます。以前のバージョンの Visual Basic で使用されていた InterfaceName_MethodName 規則には制限されません。
たとえば、次のコードはインターフェイスのメソッドを実装する Sub1 という名前のサブルーチンの宣言方法を示しています。
Class Class1
Implements interfaceclass.interface2
Sub Sub1(ByVal i As Integer) Implements interfaceclass.interface2.Sub1
End Sub
End Class
メンバを実装するパラメータの型と戻り値の型は、インターフェイス内のインターフェイス プロパティまたはメンバ宣言と一致する必要があります。インターフェイスの要素を実装する最も一般的な方法は、前の例で示したようにインターフェイスと同じ名前のメンバを使用することです。
インターフェイス メソッドの実装を宣言するために、Overloads、Overrides、Overridable、Public、Private、Protected、Friend、Protected Friend、MustOverride、Default、および Static などのインスタンス メソッド宣言に対して有効な属性を使用できます。Shared 属性はインスタンス メソッドではなくクラスを定義するため、使用できません。
Implements を使用すると、次の例に示すようにインターフェイスで定義されている複数のメソッドを実装する単一のメソッドを記述することもできます。
Class Class2
Implements I1, I2
Protected Sub M1() Implements I1.M1, I1.M2, I2.M3, I2.M4
End Sub
End Class
プライベート メンバを使用すると、インターフェイス メンバを実装できます。プライベート メンバがインターフェイスのメンバを実装する場合は、そのインターフェイス メンバがクラスのオブジェクト変数で直接使用できない場合でも、インターフェイスを通じて使用できるようになります。