CUBは子供の白熊

Java SE 8 実践プログラミングの練習問題を解く

第1章 ラムダ式とは : 問題 11 : インターフェースの抽象, デフォルト, 静的メソッド

問題 11

void f()メソッドを持つ二つのインターフェース I, J があり、その両方をインプリメントしているクラス T がある
fメソッドが、抽象, デフォルト, 静的の全ての組み合わせ(6通り)で何が起こるかを確かめよ

解答

コンパイル結果の意味
 ○ : T でf()を Override しなくてもコンパイル
 △ : T でf()を Override しなければならない
 × : T でf()を Override してもコンパイル不可

I J コンパイル 備考
抽象 抽象
抽象 デフォルト
抽象 静的
デフォルト デフォルト
デフォルト 静的 T#f()は I のf()が呼ばれる
静的 静的 T#f(),T.f()ともに未定義なので呼び出せない