インターフェースを実装したインターフェースを実装する
何言ってんだか、わかんねえだろ? おれもよくわかっていねえんだ。
インターフェースを実装したインターフェース
まず、一つインターフェースを作る。
リスト1 クラスモジュール IA
Option Explicit Public Sub aa() End Sub
実験用だから、全てが投げやり。IA
というインターフェースで、aa
というメソッドを指定している。
で、次に、このインターフェースIA
を実装したインターフェースを作る。
リスト2 クラスモジュール IB
Option Explicit Implements IA Public Sub IA_aa() End Sub Public Sub bb() End Sub
インターフェースIA
を実装したのだから、IA_aa
メソッドは必須。さらに、bb
メソッドを指定した。
これでインターフェースの準備は完了。
インターフェースを実装したインターフェースを実装したクラスを作る
では、上で作成したインターフェースIA
を実装したインターフェースIB
を実装したクラスを作る。
リスト3 クラスモジュール Hoge
Option Explicit Implements IB Public Sub IB_IA_aa() Call MsgBox("ち~んw") End Sub Public Sub IB_bb() Call MsgBox("(゚∀゚)アヒャ") End Sub
実装したインターフェースはIB
。ゆえに、インターフェースIB
が指定している二つのメソッドIA_aa
とbb
を装備すれば良いはずだ。
インターフェース名をメソッド名の頭にスネーク記法で付けるのがルールなので、IB_IA_aa
、IB_bb
とすれば、まさに万全。鉄壁の布陣。八門金鎖の陣を敷いた曹仁も驚きだろう。
Hogeクラスを使ってみる
標準モジュールに次のコードを書いてHoge
クラスを使ってみる。
リスト4 標準モジュール
Private Sub test01() Dim b As IB Set b = New Hoge Call b.IA_aa Call b.bb End Sub
コーディング中には、
こんなふうにヒントも出る。
いやが上にも胸が高鳴るではないか!!!!!!!!!!!!!!!!!
実行
震える手で実行ボタンをクリック……
あえなくコンパイル エラー……。
(´・ω・`)ショボーン
おわりに
何がいけないのでしょう……。