- ベストアンサー
親クラスのコンストラクタは? 引数付きコンストラクタは?
VisualBasic.NETです。 あるクラスを継承したクラスからインスタンスを作成したときに、派生クラスのコンストラクタは呼び出されると思うのですが、基本クラスのコンストラクタはどうなるのでしょうか? JAVAのように、super() で呼び出す必要があるのでしょうか? 自動で呼び出されるのでしょうか? それとも、そもそも呼び出せないのでしょうか? また、引数の個数が違うコンストラクタは、同じクラス内に設定できるのでしょうか? JAVAのコードを移植しようと考えているのですが、出来るのかどうかが分からずに悩んでいます。 ご存じの方、よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
>JAVAのように、super() で呼び出す必要があるのでしょうか? 自動で呼び出されるのでしょうか? デフォルトコンストラクタは確か自動で呼び出されたと思います。 明示的にスーパークラスのコンストラクタを呼ぶ場合はMyBase.New()となります。 >また、引数の個数が違うコンストラクタは、同じクラス内に設定できるのでしょうか? 問題なくできると思います。
その他の回答 (1)
- BLUEPIXY
- ベストアンサー率50% (3003/5914)
回答No.1
c#.NETでは、 派生クラスのコンストラクタを呼び出す時、 基本クラスのデフォルトコンストラクタが呼び出されます。 基本クラスのカスタムコンストラクタを呼び出されるようにするには、派生クラスのカスタムコンストラクタでbase指定で、引数を指定して、基本クラスのカスタムコンストラクタを呼び出すように書きます。 たぶんVB.NETも同じ動作だと思います。
質問者
お礼
回答ありがとうございます。 基本クラスのコンストラクタを明示的に呼び出したいので、MyBaseを使うことにします。 ありがとうございました。
お礼
回答ありがとうございます。 MyBaseというキーワードを思い出しました。これが使えるんですね。 ありがとうございました。