回答編集履歴
1
蛇足
answer
CHANGED
@@ -43,4 +43,31 @@
|
|
43
43
|
hozon.test();
|
44
44
|
}
|
45
45
|
}
|
46
|
+
```
|
47
|
+
|
48
|
+
---
|
49
|
+
Sampleクラスが、あまり役に立っていなくて(教本の後の方で意味がわかるかもしれませんが)
|
50
|
+
|
51
|
+
単純にA,B,Cだけ使うなら
|
52
|
+
```java
|
53
|
+
A[] sample = {new A(), new B(), new C()};
|
54
|
+
|
55
|
+
int i = 0;
|
56
|
+
sample[i++].test(); // A
|
57
|
+
sample[i++].test(); // B
|
58
|
+
sample[i++].test(); // C
|
59
|
+
```
|
60
|
+
で、十分かなぁ。
|
61
|
+
ポイントは、Aという型で継承しているBもCも同じ配列で扱えるということ
|
62
|
+
メソッド名は同じなので、まったく同じコードで挙動の異なる振る舞いが実現できる。
|
63
|
+
※上記では3回呼び出してますがforループで書けます
|
64
|
+
|
65
|
+
---
|
66
|
+
> こんなインスタンスの生成の仕方あるの?と混乱しています。
|
67
|
+
|
68
|
+
インスタンスを後で使わないなら以下ように書くこともあります。
|
69
|
+
```java
|
70
|
+
new Sample(new A()).method(); // A
|
71
|
+
new Sample(new B()).method(); // B
|
72
|
+
new Sample(new C()).method(); // C
|
46
73
|
```
|