web-dev-qa-db-ja.com

Javaのキーワードの実装と拡張の違いは何ですか?

Javaの次のキーワードの違いは何ですか:implementsextends

23
sachin

interfaceは、classがどのように振る舞うべきかという抽象的な仕様であり、classはそのような仕様の具体的な実装です。

したがって、あなたがimplementsを書くとき、あなたはあなたが書いた実装のいくつかの抽象的な仕様を満たしていると言っています。

extendsは、実装(class)または仕様(interface)のいずれかを取得し、異なる機能または新しい機能を追加する(またはその動作の仕様を変更する)ことを意味します。したがって、その動作を変更し、extend-ingします。

39
blahman

クラスは別のクラスを拡張し、インターフェイスを実装します。 interfaceは別のインターフェイスを拡張します。
インターフェースにはメソッドが実装されていないため、定義済みのメソッドはすべて空です。したがって、クラスをインターフェースから継承する場合は、実装メソッドである必要があります。ただし、Class1がClass2を継承する場合、既にいくつかの作業メソッド(Class2から)があり、ちょうどextends Class2です。

12
shift66