![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
こんばんわ。
いまVB.Net2005でプログラミングをしている者です。
Overrideという機能がありますが,
使い方がよくわかりません。
継承元側で定義したプロシジャ(△△△△)と同じ名前のプロシジャを
派生先側で定義しました。
派生先側でInherits ○○○○として,
派生先側の当該プロシジャ内で,
MyBase.△△△△として,
さらに派生先側の独自の処理を続けました。
このような使い方でよいのでしょうか?
なおこのような使い方をするときに,
わざわざOverride句を指定する必要があるのでしょうか?
初歩的な質問になるかもしれませんが,
教えてください。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
以下のようなケースを想定してみてはいかがでしょう
public class Base1
public Overridable Function MySS( ss as String ) as String
ss += " Base1 "
return ss
End Function
End Class
public Class TestA
Inherits Base1
Public Overrides Function MySS( ss as String ) as String
return MyBase.MySS( ss ) + " TestA "
End Function
End Class
public Class TestB
Inherits Base1
Public Function MySS( ss as string) as String
return MyBase.MySS( ss ) + " TestB "
End Function
End Class
といった定義にします
TestAはBase1を継承して MySS関数もオーバーライドしています
TestBはBase1を継承していますが MySS関数はオーバーライドしていません
dim obj as Base1, s1, s2 as string
dim objA as TestA
dim objB as TestB
obj = new TestA()
s1 = obj.MySS("Test-A") ' TestA.MySSが呼ばれBase1.MySSも実行
objA = new TestA()
s2 = objA.MySS("Test-A") ' TestA.MySSが呼ばれBase1.MySSも実行
Debug.Print("{0} {1} {2}", (s1 = s2 ), s1, s2)
obj = new TestB()
s1 = obj.MySS("Test-B") ' Base1.MySSのみが呼ばれる
objB = new TestB()
s2 = objB.MySS("Test-B") ' TestB.MySSが呼ばれ Base1.MySSも実行
Debug.Print("{0} {1} {2}", (s1 = s2 ), s1, s2)
このようにして どの場合に何処の関数が実行されているのか確認してみましょう
obj = new TestB()
s1 = obj.MySS("Test-B")
で実行されるのがTestB.MySSのつもりで記述するとそのような動作にならないことになります
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 派遣社員・契約社員 派遣について詳しい方へ質問 1 有給の具体的な1日の金額は普段勤務している金額ではなく、もっと低いの 3 2023/05/09 15:04
- 派遣社員・契約社員 派遣先にパワハラの相談したら派遣元に速攻でバレた件の続き 3 2022/11/08 22:16
- 中途・キャリア 辞退(1年限定派遣)した会社への再応募(紹介予定派遣) 1 2023/03/21 09:05
- 派遣社員・契約社員 派遣社員の方に質問です。今月末から働く予定で五日後に入社手続きなのですが、使用期間は14日です。と書 1 2022/07/10 21:27
- 政治 私の憲法9条改正案はどうですか? これだったら改憲反対派も賛成してくれますか? 【9条】(平和主義) 3 2022/12/22 22:16
- プラモデル・鉄道模型・模型製作 あるYouTubeの生放送でエアブラシが当たったので、それでつや出しのトップコートをやりたいのですけ 1 2022/12/31 07:44
- 派遣社員・契約社員 無許可派遣とその受入派遣先について 2 2023/05/09 20:07
- 派遣社員・契約社員 派遣の退職日を転職先に間違えて伝えた 3 2023/06/26 20:03
- 会社・職場 有給休暇について 8 2022/07/30 17:01
- その他(悩み相談・人生相談) 右派・左派と人格・人としての在り方などについて 5 2022/11/07 22:43
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
eclipseでスタックサイズを変更...
-
split関数で区切り文字がない場合
-
Javaで年月の取得(YYYYMM形式で)
-
「ワークスペースをビルド中」...
-
Javascriptのパーミッション
-
Javascriptの値をJava(JSP)へ渡...
-
VBScriptを実行するために必要...
-
Eclipse上でのTOMCATのエラー
-
Eclipse(JAVA)のデバッグで他...
-
Eclipseで作成したクラスを他の...
-
COBOLで言う外PERFORM
-
eclipseで「サーバーで実行」表...
-
JAVAScriptのローカル環境での...
-
Eclipseで実行>Javaアプリケー...
-
Struts2でアプリが実行できません
-
dirコマンドを実行して、結果を...
-
javaが実行できなくて困ってます。
-
javacでStackOverflowError
-
自動でコンパイルして、実行結...
-
Worksheet_Changeが動かない
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipse(JAVA)のデバッグで他...
-
split関数で区切り文字がない場合
-
JAVAにのeclipseに関する質問で...
-
Javascriptの値をJava(JSP)へ渡...
-
jasper.exceptionとは?
-
「ワークスペースをビルド中」...
-
eclipseでスタックサイズを変更...
-
eclipseのjavaを実行できない
-
Javaで年月の取得(YYYYMM形式で)
-
コミット前の更新データをチェ...
-
eclipse実行ができない
-
Eclipseで実行>Javaアプリケー...
-
エクリプスで実行時、最新クラ...
-
Eclipse 実行→Javaアプリケー...
-
eclipseで「サーバーで実行」表...
-
Google Colabでimport soxが出...
-
環境変数設定で
-
Javascriptのパーミッション
-
Spyder上のPythonでinputが実行...
-
NoClassDefFoundError: javax/m...
おすすめ情報