「Override」の版間の差分
提供: Java入門
(ページの作成:「Javaのアノーテーション Overrideとは、オーバライドすることをコンパイラに教えるための注釈です。タイポ(スペルミス)で...」) |
|||
行2: | 行2: | ||
'''読み方''' | '''読み方''' | ||
− | ;[[Override]]: | + | ;[[Override]]:おーばーらいど |
__TOC__ | __TOC__ | ||
== 概要 == | == 概要 == |
2015年3月21日 (土) 15:02時点における最新版
Javaのアノーテーション Overrideとは、オーバライドすることをコンパイラに教えるための注釈です。タイポ(スペルミス)でスーパークラスのメソッドの上書きができてないときに、コンパイラがオーバーライド(上書き)できないことを教えてくれます。
読み方
- Override
- おーばーらいど
概要
アノテーションをすることで、コンパイラや統合開発環境によって、エラーを検出し、早期に誤りに気付くことができます。
ソースコード
クラスXを継承し、Xのfooメソッドをオーバーライドしようとしているときに、タイポでメソッド名をfoooにしてしまったときに、アノテーションがなければ、そのままコンパイルされ、オーバーライドできなくなります。 アノテーションで注釈することにより、コンパイラがコードの間違いに気付くことができます。したがって、下記の例では、javacでコンパイルするときにエラーになります。
/* * override1.java * Copyright (C) 2015 kaoru <kaoru@bsd> */ class X { public void foo () { System.out.println("'A'"); } } class Y extends X { @Override public void fooo () { System.out.println("'-'"); } } public class override1 { public static void main(String[] args) { } }
コンパイル
$ javac override1.java override1.java:12: エラー: メソッドはスーパータイプのメソッドをオーバーライドまたは実装しません @Override public void fooo () { ^ エラー1個