スポンサーサイト

スポンサードリンク

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--年--月--日 スポンサー広告 トラックバック:- コメント:-

インターフェイス インターフェイス同士のキャスト

スポンサードリンク

実際に使うことは考えられないのですが、試験対策用の勉強の中で異なるインターフェイス同士のキャストは可能であるとの記述があり、その意味が解らず混乱しています。質問は

1.そもそも本当にインターフェイス同士のキャストは可能なのか?

2.可能だとしたらそのキャストを認めたJavaコンパイラーを作った人の意図はなんなのか?

3.インターフェイス同士のキャストを利用する場面はあるのか?

の3点です。

よろしくお願い致します。



以下のソースを実行したら、実行できました。

(貼り付けのために全角スペースに置換してあります)

クラスFooはインタフェースAaaとBbbをインプリメンツしていますが、AaaとBbbには継承関係はありません。

それでも、変数a を (Bbb) でキャストできるところが面白いですね。

public class Foo implements Aaa, Bbb{

 public static void main(String[] args) {

  Aaa a = new Foo();

  a.aaa();

  Bbb b = (Bbb)a;

  b.bbb();

 }

 public void aaa() {

  System.out.println("aaa");

 }

 public void bbb() {

  System.out.println("bbb");

 }

}

interface Aaa{

 void aaa();

}

interface Bbb{

 void bbb();

}



スポンサーサイト

2008年06月10日 未分類 トラックバック:- コメント:-

<< 墾田 三世一身法、墾田永年私財法について | セレクト記事TOP | 日研総業 個室ではなく、大部屋生活の場所を教えてください >>

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。