第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() ともに未定義なので呼び出せない |