package 练习;
public class test {
    /**
     * 静态内部类 static class love implements ilove{
     *
     * @Override public void love(int a) {
     * System.out.println("i love you"+a);
     * }
     * }
     */
    public static void main(String[] args) {
        /**局部内部类 class love implements ilove{
        @Override public void love(int a) {
        System.out.println("i love you"+a);
        }
        }*/
        /**匿名内部类ilove love=new ilove() {
        @Override public void love(int a) {
        System.out.println("i love you"+a);
        }
        };*/
        //lambda简化式
        ilove love = (int a) -> {
            System.out.println("i love you" + a);
        };
        //简化二去掉参数类型
        love=(a)->{
            System.out.println("i love you" + a);
        };
        //简化三去括号
        love=a->{
            System.out.println("i love you" + a);
        };
        //简化四去花括号
        love=a->System.out.println(a+"i love you" + a);
        //只有一行代码的情况下才能简化为一行;如果有多行必须用代码块包裹(花括号)
        //简化前提必须是函数式接口(接口里只有一个方法)
        //多个参数也可以去掉参数类型,要去掉就都要去,必须加上括号
     //父类指向子类   ilove love = new love();
        love.love(521);
    }
}
//函数式接口
interface ilove {
    void love(int a);
}
/**
 * 实现类 class love implements ilove{
 *
 * @Override public void love(int a) {
 * System.out.println("i love you"+a);
 * }
 * }
 */