ITコンサルの日常

ITコンサル会社に勤務する普通のITエンジニアの日常です。

VBScriptでオーバライド的な感じ

VBScriptのクラスって継承ない(多分)ので、オーバライドではないのですが、ポリモーフィズムといった方が正しいかも。

Class hoge
	Public Sub sub1
		msgbox "hoge"
	End Sub
End Class

Class moge
	Public Sub sub1
		msgbox "moge"
	End Sub
End Class


Set hoge1 = new hoge
Set moge1 = new moge

' togeにhoge1を代入すれば、hogeクラスのサブルーチンが呼ばれる
Set toge = hoge1
toge.sub1

' togeにmoge1を代入すれば、mogeクラスのサブルーチンが呼ばれる
Set toge = moge1
toge.sub1

実行結果は、hoge、mogeの順番にメッセージボックスが表示されます。
ポイントは、同じtoge変数に、型の違うhoge1とmoge1を代入し、同名のサブルーチンを呼ぶと、それぞれのクラスのサブルーチンが呼ばれるということ。
この仕組みを使えば、If文が減ってコードがすっきりすること請け合いですね。