演習課題「関数型インターフェースを匿名クラスでインスタンス化してみよう」
右側のコードエリアにあるコードではエラーが発生してしまいます。
抽象メソッドである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();
}