.NET(へたれな)コネタ Stateパターン?

VB.NETで、ある公開メソッドの引数にオブジェクト指定して、その引数のオブジェクトのポリモルフィズムを利用した処理を実装したかったのですが、これが、VB6時代よりキモイ方法でしか実装できませんでした。

前提条件
クラスAとBは共通のInterfaceZで実装されている
クラスA Implements InterfaceZ
クラスB Implements InterfaceZ
Public sub Method1( obj As InterfaceZ)

と定義したかったのですが、どうもエラーとなりうまくゆかず

Public sub Method1( obj As Object)

と定義して、メソッド内部で、InterfaceZへキャストして利用するようにしたのですが、いまいち納得がいきません。ネットで調べなおしたらインターフェースの定義方法に問題があるのかもしれません。最初に読んだヘルプでは、標準モジュールに定義してありましたが、VB6時代のようにクラスとして定義可能ではないのかと思ってきました。明日、もう一度だけ挑戦してみたいと思います。

これは、いわゆるGOFのStateパターンのVBによる実装をしたいのですが、このパタンを、VBで実装している例を見たことがあるような気がするからです。
http://hccweb1.bai.ne.jp/tsune-1/VisualBasic/state.html
Objectで受けてキャストするなんてやりたくないもんね。