\r\n\r\n
実装と拡張の比較
ImplementsとExtendsはJavaプログラミング言語の2つのキーワードで、新しいクラスに追加機能を渡すためのメソッドを提供します。Implementsキーワードはインターフェイスを実装するために明示的に使われ、Extendsキーワードは(スーパー)クラスから継承するために使われます。なお、C#やVB.NET版など、他のほとんどのオブジェクト指向プログラミング言語にも継承やインターフェースの概念は存在するが、これらの概念を適用するための異なる構文やキーワードが用意されている。この記事では、Javaで定義されたキーワードの実装と拡張についてのみ説明します。
エクステンション
Extends キーワードは、Java プログラミング言語における継承の概念を実装するために使用されます。継承は基本的に、既存のクラスのプロパティや振る舞いを、新しく定義されたクラスが拡張できるようにすることで、コードの再利用を可能にします。新しいサブクラス(または派生クラス)がスーパークラス(または親クラス)を拡張すると、そのサブクラスはそのスーパークラスのすべてのプロパティとメソッドを継承することになります。サブクラスは、オプションで親クラスから継承した動作をオーバーライドすることができます(メソッドに新しい機能または拡張機能を提供します)。Javaでは、サブクラスは複数のスーパークラスを拡張することはできません。そのため、拡張機能を多重継承に使用することはできません。複数の継承を行うためには、以下のようなインターフェースを使用する必要があります。
ツール
Javaプログラミング言語では、クラスがインターフェイスを実装するためにImplementsキーワードを使用します。Javaにおけるインターフェイスとは、インターフェイスを実装するクラスが実装すべき契約を指定した抽象的な型です。通常、インターフェースには、メソッドのシグネチャと定数の宣言だけが含まれます。特定のインタフェースを実装するインタフェースは、そのインタフェースで定義されたすべてのメソッドを実装するか、抽象クラスとして宣言する必要があります。Javaでは、オブジェクト参照の型はインターフェース型として定義することができる。ただし、オブジェクトはNULLであるか、その特定のインターフェースを実装しているクラスのオブジェクトを含む必要があります。JavaではImplementsキーワードを使用することで、1つのクラスの複数のインターフェースを実装することができます。インターフェースは、他のインターフェースを実装することはできません。しかし、インターフェースはクラスを拡張することができます。
ツールとエクステンションの違い