implements
日本語 | 実装 |
英語 | implements |
ふりがな | いんぷりめんと、いんぷりめんつ |
フリガナ | インプリメント、インプリメンツ |
インターフェイスの実装クラスを宣言するための予約語。
「class クラス名 implements インターフェイス名 { /** フィールドやメソッドの実装 */ }」と記述することで、「インターフェイス名」というインターフェイスの実装クラス「クラス名」クラスが宣言される。
classでは継承にextendsを使用するが、インターフェイスでは継承ではなく「実装」を行い、implementsを使用する。
ただし、実装クラスそのものはクラスであることには変わりはない。
「class クラス名 implements インターフェイス名 { /** フィールドやメソッドの実装 */ }」と記述することで、「インターフェイス名」というインターフェイスの実装クラス「クラス名」クラスが宣言される。
classでは継承にextendsを使用するが、インターフェイスでは継承ではなく「実装」を行い、implementsを使用する。
ただし、実装クラスそのものはクラスであることには変わりはない。
参考サイト
- (参考サイトはありません)
// Sample.java
public class Sample
{
public static void main( String[] args )
{
// ImplementedClassクラスを使用してみます。
ImplementedClass implementedClass = new ImplementedClass();
implementedClass.output();
// ImplementedClass#output()
// 実装クラスからインターフェイスへのアップキャストは
// 可能です。その際、ポリモーフィズムが適用されるので
// インターフェイスから実装クラスのメソッドを呼び出す
// ことができます。
Interface interfaceOfimplementedClass = implementedClass;
interfaceOfimplementedClass.output();
// ImplementedClass#output()
// インターフェイスには実装がないため、インスタンスを
// 作成できません。
// interfaceOfimplementedClass = new Interface();
// コンパイルエラー:
// Interface のインスタンスを生成することができません。
}
}
/**
* Interfaceインターフェイスを宣言します。
*/
interface Interface
{
/**
* 実装用メソッドを用意します。
*/
public void output();
// 実装はありません。
// もしinterfaceのメソッドに実装があると、
// 以下のようなコンパイルエラーが
// 発生します。
// public void output2(){}
// コンパイルエラー:
// 抽象メソッドは本体を指定しません。
}
/**
* Interfaceインターフェイスの実装クラスImplementedClassを宣言します。
*/
class ImplementedClass implements Interface
{
/**
* インターフェイスのメソッドを実装します。
* 方法はオーバーライドと同じ。
* 同名、同引数、同戻り値のメソッドを作ってください。
*/
public void output()
{
System.out.println( "ImplementedClass#output()" );
}
// インターフェイスを実装する場合には、すべてのメソッドを
// 実装する必要があります。たとえば、output()メソッドを
// 作り忘れると、以下のコンパイルエラーが発生します。
// コンパイルエラー:
// クラスは継承された抽象メソッド Interface.output() をインプリメントする必要があります。
}
public class Sample
{
public static void main( String[] args )
{
// ImplementedClassクラスを使用してみます。
ImplementedClass implementedClass = new ImplementedClass();
implementedClass.output();
// ImplementedClass#output()
// 実装クラスからインターフェイスへのアップキャストは
// 可能です。その際、ポリモーフィズムが適用されるので
// インターフェイスから実装クラスのメソッドを呼び出す
// ことができます。
Interface interfaceOfimplementedClass = implementedClass;
interfaceOfimplementedClass.output();
// ImplementedClass#output()
// インターフェイスには実装がないため、インスタンスを
// 作成できません。
// interfaceOfimplementedClass = new Interface();
// コンパイルエラー:
// Interface のインスタンスを生成することができません。
}
}
/**
* Interfaceインターフェイスを宣言します。
*/
interface Interface
{
/**
* 実装用メソッドを用意します。
*/
public void output();
// 実装はありません。
// もしinterfaceのメソッドに実装があると、
// 以下のようなコンパイルエラーが
// 発生します。
// public void output2(){}
// コンパイルエラー:
// 抽象メソッドは本体を指定しません。
}
/**
* Interfaceインターフェイスの実装クラスImplementedClassを宣言します。
*/
class ImplementedClass implements Interface
{
/**
* インターフェイスのメソッドを実装します。
* 方法はオーバーライドと同じ。
* 同名、同引数、同戻り値のメソッドを作ってください。
*/
public void output()
{
System.out.println( "ImplementedClass#output()" );
}
// インターフェイスを実装する場合には、すべてのメソッドを
// 実装する必要があります。たとえば、output()メソッドを
// 作り忘れると、以下のコンパイルエラーが発生します。
// コンパイルエラー:
// クラスは継承された抽象メソッド Interface.output() をインプリメントする必要があります。
}
// Sample.java public class Sample { public static void main( String[] args ) { // ImplementedClassクラスを使用してみます。 ImplementedClass implementedClass = new ImplementedClass(); implementedClass.output(); // ImplementedClass#output() // 実装クラスからインターフェイスへのアップキャストは // 可能です。その際、ポリモーフィズムが適用されるので // インターフェイスから実装クラスのメソッドを呼び出す // ことができます。 Interface interfaceOfimplementedClass = implementedClass; interfaceOfimplementedClass.output(); // ImplementedClass#output() // インターフェイスには実装がないため、インスタンスを // 作成できません。 // interfaceOfimplementedClass = new Interface(); // コンパイルエラー: // Interface のインスタンスを生成することができません。 } } /** * Interfaceインターフェイスを宣言します。 */ interface Interface { /** * 実装用メソッドを用意します。 */ public void output(); // 実装はありません。 // もしinterfaceのメソッドに実装があると、 // 以下のようなコンパイルエラーが // 発生します。 // public void output2(){} // コンパイルエラー: // 抽象メソッドは本体を指定しません。 } /** * Interfaceインターフェイスの実装クラスImplementedClassを宣言します。 */ class ImplementedClass implements Interface { /** * インターフェイスのメソッドを実装します。 * 方法はオーバーライドと同じ。 * 同名、同引数、同戻り値のメソッドを作ってください。 */ public void output() { System.out.println( "ImplementedClass#output()" ); } // インターフェイスを実装する場合には、すべてのメソッドを // 実装する必要があります。たとえば、output()メソッドを // 作り忘れると、以下のコンパイルエラーが発生します。 // コンパイルエラー: // クラスは継承された抽象メソッド Interface.output() をインプリメントする必要があります。 }
「みだし」に含まれているページ
「解説」に含まれているページ
「サンプルプログラムとか」に含まれているページ
- <jsp:useBean>
- abstractメソッド
- Applet
- AWT
- clone
- Cloneable
- CloneNotSupportedException
- Comparable
- Comparator
- compareTo
- Frame
- GUI
- HttpServletRequest
- implements
- interface
- Iterable<T>
- JavaBeans
- JSP暗黙オブジェクト「request」
- JSP暗黙オブジェクト「session」
- JTree
- MVC
- ObjectInputStream
- ObjectOutputStream
- Runnable
- Serializable
- transient
- アプレット
- イベント
- イベントリスナー
- インターフェイス
- イントロスペクション
- エラーハンドラ
- コンクリートクラス
- コントローラー
- サブインターフェイス
- スーパーインターフェイス
- セッションスコープ
- ソート
- ダイアログ
- ビュー
- フォント
- フォーカス
- ボタン
- メッセージボックス
- モデル
- モーダルダイアログ
- モードレスダイアログ
- リクエストスコープ
- リスナー
- 再描画
- 安定ソート
- 実装
- 実装クラス
- 浅いコピー
- 直列化
- 降順