回答編集履歴

2

補足の追記

2017/09/19 14:40

投稿

hiramekun
hiramekun

スコア428

test CHANGED
@@ -34,4 +34,20 @@
34
34
 
35
35
  ---
36
36
 
37
- 補足で、一応javaではoverriceアノテーションをつけなくてもいいことにはなっていますが、明示的にoverrideアノテーションをつけておくことをオススメします!
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

補足の追記

2017/09/19 14:40

投稿

hiramekun
hiramekun

スコア428

test CHANGED
@@ -10,7 +10,9 @@
10
10
 
11
11
  と宣言しています。これだと、fはOrangeインスタンスではなくて、Fruitインスタンスとして扱われているので、`Fruit#foo()`が呼ばれることになります。ですので例外を処理する必要があります。
12
12
 
13
+
14
+
13
- ので、以下のようにOrangeインスタンスとして宣言してあげれば、例外を処理する必要はなく、overrideしたメソッドを使うことができます。
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アノテーションをつけておくことをオススメします!