回答編集履歴
2
修正
test
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
|
7
7
|
このコードは「そのようなことにはなりませんよ。実際はこういう結果になりますよ」という**事実を説明**するためのコードです。
|
8
8
|
|
9
|
-
つまり「"Workerインタフェース型"の変数であるworkerを通じてwork()メソッドを呼んでいるけれども、実際は何が動くのかというと代入されているところの"Enginner型のインスタンス"で実装したメソッドの方なんですよ」という挙動──interfaceと実装クラスの間にある多相性(多態性)という機能──を**示すための**コードです。
|
9
|
+
つまり「"Workerインタフェース型"の変数であるworkerを通じてwork()メソッドを呼んでいるけれども、実際は何が動くのかというと代入されているところの"Enginner型のインスタンス"から見えているすでに実装したあったメソッドの方なんですよ」という挙動──interfaceと実装クラスの間にある多相性(多態性)という機能──を**示すための**コードです。
|
10
10
|
|
11
11
|
|
12
12
|
|
1
些細
test
CHANGED
@@ -4,22 +4,22 @@
|
|
4
4
|
|
5
5
|
|
6
6
|
|
7
|
-
このコードは「そのようなことにはなりませんよ。実際はこういう結果になりますよ」という事実を
|
7
|
+
このコードは「そのようなことにはなりませんよ。実際はこういう結果になりますよ」という**事実を説明**するためのコードです。
|
8
8
|
|
9
|
-
つまり「"Workerインタフェース型"の変数であるworkerを通じてwork()メソッドを呼んでいるけれども、実際は何が動くのかというと代入されているところの"Enginner型のインスタンス"で実装したメソッドの方なんですよ」という挙動──interfaeと実装クラスの間にある多相性(多態性)という機能──を**
|
9
|
+
つまり「"Workerインタフェース型"の変数であるworkerを通じてwork()メソッドを呼んでいるけれども、実際は何が動くのかというと代入されているところの"Enginner型のインスタンス"で実装したメソッドの方なんですよ」という挙動──interfaceと実装クラスの間にある多相性(多態性)という機能──を**示すための**コードです。
|
10
10
|
|
11
11
|
|
12
12
|
|
13
|
-
機能
|
13
|
+
機能を示す目的のものに「なぜそう動くのか?」をたずねるのは愚問です。
|
14
14
|
|
15
15
|
|
16
16
|
|
17
17
|
「interfaceとはこういうもので、このように使い、このようなメリットがあります」という説明があって、「では使ってみましょう、こうなります」という構成になっているはずです。
|
18
18
|
|
19
|
-
|
19
|
+
その様な構成の説明で、コードだけを読んでも意味が無いです。
|
20
20
|
|
21
|
-
説明を読んで**理解して**コードの挙動に納得する、あるいは逆に、コードの挙動を観察して説明を読んで機能の意図を掴む、というような
|
21
|
+
説明を読んで**理解して**コードの挙動に納得する、あるいは逆に、コードの挙動を**観察して**把握した上で説明を読んで機能の意図を掴む、というような読み方をするべきものです。
|
22
22
|
|
23
23
|
|
24
24
|
|
25
|
-
ここで「なぜそう動くのか?」を説明しようとするなら、「interfaceとはこういうもので、このように使い……」という**教科書的な**話を始めなければなりません。
|
25
|
+
ここで「なぜそう動くのか?」を説明しようとするなら、「interfaceとはこういうもので、このように使い……」という**教科書的な**話を重ねて始めなければなりません。
|