• ベストアンサー

親クラスのコンストラクタは? 引数付きコンストラクタは?

VisualBasic.NETです。 あるクラスを継承したクラスからインスタンスを作成したときに、派生クラスのコンストラクタは呼び出されると思うのですが、基本クラスのコンストラクタはどうなるのでしょうか? JAVAのように、super() で呼び出す必要があるのでしょうか? 自動で呼び出されるのでしょうか? それとも、そもそも呼び出せないのでしょうか? また、引数の個数が違うコンストラクタは、同じクラス内に設定できるのでしょうか? JAVAのコードを移植しようと考えているのですが、出来るのかどうかが分からずに悩んでいます。 ご存じの方、よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • gimmick
  • ベストアンサー率49% (134/270)
回答No.2

>JAVAのように、super() で呼び出す必要があるのでしょうか? 自動で呼び出されるのでしょうか? デフォルトコンストラクタは確か自動で呼び出されたと思います。 明示的にスーパークラスのコンストラクタを呼ぶ場合はMyBase.New()となります。 >また、引数の個数が違うコンストラクタは、同じクラス内に設定できるのでしょうか? 問題なくできると思います。

cip
質問者

お礼

回答ありがとうございます。 MyBaseというキーワードを思い出しました。これが使えるんですね。 ありがとうございました。

その他の回答 (1)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

c#.NETでは、 派生クラスのコンストラクタを呼び出す時、 基本クラスのデフォルトコンストラクタが呼び出されます。 基本クラスのカスタムコンストラクタを呼び出されるようにするには、派生クラスのカスタムコンストラクタでbase指定で、引数を指定して、基本クラスのカスタムコンストラクタを呼び出すように書きます。 たぶんVB.NETも同じ動作だと思います。

cip
質問者

お礼

回答ありがとうございます。 基本クラスのコンストラクタを明示的に呼び出したいので、MyBaseを使うことにします。 ありがとうございました。

関連するQ&A