|
こんばんは、YU-TANG です。
1 だけ。
> 1 擬似的にクラスを承継したいが為に、
> 子クラス内に使用したい親クラスのメソッド、プロパティを
> 全て書いていますが、他の実現方法がありますでしょうか?
> (現状ですと、親クラスに変更、追加があった場合に関係する
> 全ての子クラスを修正しなければいけません。)
残念ながら、VBA では実現できません。
VB.NET のようなオブジェクト指向言語を使うしかないでしょう。
ただ、継承と関係ない使い方として、あるクラス foo に手を入れずに
特定の機能群を拡張可能にしたい場合は、それらをまとめたクラス bar
のインスタンス自体をプロパティとして公開してしまう方法が有ります。
この場合は、クラス bar を拡張しても、クラス foo を変更する必要は
ありません。その代わり、呼び出し方は foo.bar.hoge() のような
形になりますが。
あと、ご提示のコードでは、実際の継承は行われていませんね。
clsParent と clsChird のあいだには、何の関係性もありません。
たまたまメンバが同じ名前というだけで、独立したクラスです。
VBA には VBA で、ちゃんと継承の仕組みがあります。
もしかしたらご存知の上であえて使っていないだけかもしれません
が、Implements ステートメントをヘルプで調べてみてください。
Implements ステートメントはインターフェイスを継承するだけ
なので、実装は結局クラス個別に行う必要があります。とは言え、
インターフェイスが継承される (型が強制される) ことだけでも、
多態性の観点からは非常に大きな意味がありますが。
それでは。
|
|