「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

関連項目