演習課題「関数型インターフェースを匿名クラスでインスタンス化してみよう」
右側のコードエリアにあるコードではエラーが発生してしまいます。
抽象メソッドであるspecialMove
メソッドのみを持つ、関数型インターフェースのSkill
を匿名クラスを使ってインスタンス化するコードを追加し、必殺技を放った
と出力されるよう修正してください。
期待する出力値
必殺技を放った
演習課題「関数型インターフェースをラムダ式でインスタンス化してみよう」
右側のコードエリアにあるコードではエラーが発生してしまいます。
抽象メソッドであるspecialMove
メソッドのみを持つ、関数型インターフェースのSkill
をラムダ式を使ってインスタンス化するコードを追加し、必殺技を放った
と出力されるよう修正してください。
期待する出力値
必殺技を放った
演習課題「関数型インターフェースをメソッド参照式でインスタンス化してみよう」
右側のコードエリアにあるコードではエラーが発生してしまいます。
抽象メソッドであるspecialMove
メソッドのみを持つ、関数型インターフェースのSkill
をメソッド参照式を使ってインスタンス化するコードを追加してください。
その際、既存のlightning
メソッドを利用し、ライトニングを放った
と出力されるよう修正してください。
期待する出力値
ライトニングを放った
演習課題「関数型インターフェースとならない例を確認してみよう」
右側のコードエリアにあるコードではエラーが発生してしまいます。
関数型インターフェースのSkill
にオブジェクトクラスのメソッドであるtoString
が定義されています。
オブジェクトクラスのメソッドをオーバーライドした抽象メソッドがあっても構わないはずですがエラーが解消されません。
エラーの原因を解消するためにコードを修正し、ライトニングを放った
と出力されるようにしてください。
期待する出力値
ライトニングを放った
#01:関数型インターフェース(Functional Interface)
このチャプターでは、関数型インターフェースについて学習します。
新・Java入門編31: クラスについてもっと学習しよう
05: インターフェース(interface)
https://paiza.jp/works/java/new-primer/java-new-primer-31/94004
06: implements
https://paiza.jp/works/java/new-primer/java-new-primer-31/94004
新・Java入門編31: クラスについてもっと学習しよう
10: 匿名クラス(Anonymous Classes)
https://paiza.jp/works/java/new-primer/java-new-primer-31/94009
新・Java入門編31: クラスについてもっと学習しよう
13: アノテーション(Annotation Interfaces)
https://paiza.jp/works/java/new-primer/java-new-primer-31/940012
public class Main {
public static void main(String... args) {
// A a1 = new A() {
// @Override
// public void test() {
// System.out.println("b");
// }
// };
// a1.test();
// A a2 = () -> System.out.println("c");
// a2.test();
}
}
@FunctionalInterface
interface A {
//void test();
String toString();
}