JavaA2Z

KAB-studio > プログラミング > JavaA2Z > サブインターフェイスとは

サブインターフェイス

日本語 下接続口
英語 subinterface
ふりがな さぶいんたーふぇいす
フリガナ サブインターフェイス

解説

あるインターフェイスから継承したインターフェイス
通常はインターフェイスからは「クラス実装する」ものだが、クラスではなく「インターフェイス継承する」のが、このサブインターフェイスである。
 
interface インターフェイス名A extends インターフェイス名B { 実装のないメソッド }」で、「インターフェイス名B」に「実装のないメソッド」を追加した「インターフェイス名A」インターフェイスを作ることができる。この「インターフェイス名A」が「インターフェイス名B」の「サブインターフェイス」となる。
実装クラスを作る際はimplementsなのに対し、サブインターフェイスを作る際にはextendsを使用することに注意。なぜなら、サブインターフェイスはあくまでインターフェイスのため、「実装を作らない」からである。
 
ただし、サブインターフェイスはあまり使われない。
クラスは、複数のインターフェイスから実装することができる。この機能が、サブインターフェイスと同じ機能を提供するためである。

参考サイト

  • (参考サイトはありません)

(KAB-studioからのおしらせです)

サンプルプログラム(とか)サンプルを別ウィンドウで表示サンプルをクリップボードへコピー(WindowsでIEの場合のみ)

// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // ImplementedClassクラスを使用します。
        ImplementedClass implementedClass = new ImplementedClass();
        implementedClass.output();
        implementedClass.output2();
        // ImplementedClass#output()
        // ImplementedClass#output2()
    }
}

/**
*   インターフェイス。
*/
interface Interface
{
    /**
    *   実装用メソッド。
    */
    public void output();
}

/**
*   Interfaceインターフェイスのサブインターフェイス。
*/
// サブインターフェイスは、implementsではなくextendsなのに注意してください。
// interface SubInterface implements Interface
// コンパイルエラー:
// キーワード "implements" に構文エラーがあります。正しくは "{" です。
interface SubInterface extends Interface
{
    /**
    *   実装用メソッド2。
    */
    public void output2();

    // インターフェイスなので実装は作れません。
    // だからInterface#output()はここでは実装しません。
}

/**
*   SubInterfaceインターフェイスの実装クラスImplementedClass。
*/
class ImplementedClass implements SubInterface
{
    /**
    *   インターフェイスのメソッドを実装します。
    */
    public void output()
    {
        System.out.println( "ImplementedClass#output()" );
    }

    /**
    *   インターフェイスのメソッド2を実装します。
    */
    public void output2()
    {
        System.out.println( "ImplementedClass#output2()" );
    }
}
// Sample.java
public class Sample
{
    public static void main( String[] args )
    {
        // ImplementedClassクラスを使用します。
        ImplementedClass implementedClass = new ImplementedClass();
        implementedClass.output();
        implementedClass.output2();
        // ImplementedClass#output()
        // ImplementedClass#output2()
    }
}

/**
*   インターフェイス。
*/
interface Interface
{
    /**
    *   実装用メソッド。
    */
    public void output();
}

/**
*   Interfaceインターフェイスのサブインターフェイス。
*/
// サブインターフェイスは、implementsではなくextendsなのに注意してください。
// interface SubInterface implements Interface
// コンパイルエラー:
// キーワード "implements" に構文エラーがあります。正しくは "{" です。
interface SubInterface extends Interface
{
    /**
    *   実装用メソッド2。
    */
    public void output2();

    // インターフェイスなので実装は作れません。
    // だからInterface#output()はここでは実装しません。
}

/**
*   SubInterfaceインターフェイスの実装クラスImplementedClass。
*/
class ImplementedClass implements SubInterface
{
    /**
    *   インターフェイスのメソッドを実装します。
    */
    public void output()
    {
        System.out.println( "ImplementedClass#output()" );
    }

    /**
    *   インターフェイスのメソッド2を実装します。
    */
    public void output2()
    {
        System.out.println( "ImplementedClass#output2()" );
    }
}

この単語を含むページ

「みだし」に含まれているページ

「サンプルプログラムとか」に含まれているページ

はてなブックマーク 詳細を表示 はてなブックマーク ブックマーク数
livedoorクリップ 詳細を表示 livedoorクリップ ブックマーク数
Yahoo!ブックマーク 詳細を表示 users
del.icio.us 登録する RSSに登録
サンプルを別ウィンドウで表示
サンプルをクリップボードへコピー(WindowsでIEの場合のみ)
update:2005/06/15
このページは、Javaプログラミング言語についての用語を網羅した辞書「JavaA2Z」の一ページです。
詳しくは「JavaA2Z」表紙の説明をご覧ください。