回答編集履歴
1
誤記訂正
answer
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
Sub is a Superを日本語で表現するなら「SubはSuperです」となります。
|
4
4
|
もう少し言えば「Subのインスタンスは同時にSuperのインスタンス」でもあります。
|
5
|
-
さて、SubがSuperのインスタンスである
|
5
|
+
さて、SubがSuperのインスタンスであるための条件はなんでしょうか?基本的にそれは「Superのインスタンスに対して行えることはSubのインスタンスに対してもまた行える」ということを意味すると考えてよいと思います。
|
6
6
|
|
7
7
|
> 継承という行為は継承元から継承先に利用可能箇所を切り取って貼り付ける、みたいなものではなく、全てを内包するという意味。
|
8
8
|
|
@@ -11,4 +11,4 @@
|
|
11
11
|
|
12
12
|
> そしてそれらのメンバはSubクラスのメンバではあるが、厳密にはSubクラスに含まれるSuperクラスのメンバであって、Mainクラスからsub.getName()で呼び出した際の処理も、スーパークラス内で行われることに他ならない。
|
13
13
|
|
14
|
-
スーパークラス内で行われていることに他ならないという表現は若干誤謬を含む可能性があると思います。sub.getName()はあくまでSub内で行われており、Superから引き継いだSubのgetNameが動いていると捉えても一向にかまわないです。(Javaの実装上はメソッドの実体はSuperにしかないですが、Super内部でメソッドが動いているというような捉え方よりはむしろ、SubのためにコピーされたgetNameがSubのインスタンスの元で動いていると捉えた方が本質を捉えやすい気がします。)
|
14
|
+
スーパークラス内で行われていることに他ならないという表現は若干誤謬を含む可能性があると思います。sub.getName()はあくまでSubのインスタンス内で行われており、Superから引き継いだSubのgetNameが動いていると捉えても一向にかまわないです。(Javaの実装上はメソッドの実体はSuperにしかないですが、Super内部でメソッドが動いているというような捉え方よりはむしろ、SubのためにコピーされたgetNameがSubのインスタンスの元で動いていると捉えた方が本質を捉えやすい気がします。)
|