抽象メソッドを実装?オーバーライド?

用語問題。次のインターフェイス&クラスをコンパイルしたらば

interface IFoo{
  void bar();
}
class Foo implements IFoo {
}

コンパイラに怒られる。

C:\tmp\>javac Foo.java
Foo.java:4: Foo は abstract でなく、IFoo 内の abstract メソッド bar() をオーバー
ライドしません。
class Foo implements IFoo {
^
エラー 1 個

インターフェイスの抽象メソッドって、クラスで「実装する」でなく「オーバーライドする」と言うものだろうか?


シグネチャはオーバーライド、中身は実装と考えると、どちらの言葉も使えるような気はするが、「抽象クラスの抽象メソッドをサブクラスでオーバーライドする」は違和感がないが、「インターフェイスの抽象メソッドをクラスでオーバーライドする」は何だか違和感が。。。


9 Interfaces
http://java.sun.com/docs/books/jls/third_edition/html/interfaces.html
9 インターフェイス
http://www.y-adagio.com/public/standards/tr_javalang/9.doc.htm


8.4.8 Inheritance, Overriding, and Hiding
http://java.sun.com/docs/books/jls/third_edition/html/classes.html#8.4.8
8.4.6 継承,上書き及び隠ぺい
http://www.y-adagio.com/public/standards/tr_javalang/8.doc.htm#228745