回答編集履歴
2
補足の追記
test
CHANGED
@@ -34,4 +34,20 @@
|
|
34
34
|
|
35
35
|
---
|
36
36
|
|
37
|
-
補足で、一応javaではoverri
|
37
|
+
補足で、一応javaではoverrideアノテーションをつけなくてもいいことにはなっていますが、明示的に以下のようにoverrideアノテーションをつけておくことをオススメします!
|
38
|
+
|
39
|
+
```java
|
40
|
+
|
41
|
+
class Orange extends Fruit{
|
42
|
+
|
43
|
+
@Override
|
44
|
+
|
45
|
+
void foo(){
|
46
|
+
|
47
|
+
out.println("B");
|
48
|
+
|
49
|
+
}
|
50
|
+
|
51
|
+
}
|
52
|
+
|
53
|
+
```
|
1
補足の追記
test
CHANGED
@@ -10,7 +10,9 @@
|
|
10
10
|
|
11
11
|
と宣言しています。これだと、fはOrangeインスタンスではなくて、Fruitインスタンスとして扱われているので、`Fruit#foo()`が呼ばれることになります。ですので例外を処理する必要があります。
|
12
12
|
|
13
|
+
|
14
|
+
|
13
|
-
な
|
15
|
+
これを回避し、Orangeインスタンスとして扱いたいのならば宣言時に以下のようにOrangeインスタンスとして宣言してあげれば、例外を処理する必要はなく、overrideしたメソッドを使うことができます。
|
14
16
|
|
15
17
|
```java
|
16
18
|
|
@@ -27,3 +29,9 @@
|
|
27
29
|
}
|
28
30
|
|
29
31
|
```
|
32
|
+
|
33
|
+
|
34
|
+
|
35
|
+
---
|
36
|
+
|
37
|
+
補足で、一応javaではoverriceアノテーションをつけなくてもいいことにはなっていますが、明示的にoverrideアノテーションをつけておくことをオススメします!
|