teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

2

説明を追記

2016/03/14 08:16

投稿

退会済みユーザー
answer CHANGED
@@ -38,4 +38,7 @@
38
38
 
39
39
  ** ※base は親クラスを呼び出すキーワード**
40
40
  ChildクラスのSetメソッドから、自身を表すthis.valという変数と、親クラスで宣言されたbase.valにそれぞれ代入したものを出力するだけです。
41
- もし、Showの中でbase.valとかthis.valとか指定しない場合は、暗黙的にthis.valを呼び出すことになります。
41
+ もし、Showの中でbase.valとかthis.valとか指定しない場合は、暗黙的にthis.valを呼び出すことになります。
42
+ 重要なのはBaseクラスと、それを継承したChildクラスそれぞれにvalという変数があるけど、明示的にどちらを参照するのかということです。
43
+ メソッドのオーバーライドでもbaseとthisのキーワードが重要になります。
44
+ (というか、そっちがメインで、継承元に定義されている同じ名前で変数定義するのはやめましょう)

1

実行結果も追記

2016/03/14 08:16

投稿

退会済みユーザー
answer CHANGED
@@ -31,6 +31,7 @@
31
31
  Child child = new Child();
32
32
  child.Set(5);
33
33
  child.Show();
34
+ // 実行結果 -- Child -- this=5 base=50
34
35
  }
35
36
  }
36
37
  ```