publicstaticvoidmain(String[] args){
Cola c =newCola(){
//匿名内部类重写接口方法publicintsum(int x,int y){
//匿名内部类的对象只能用一次return x+y;}};}}interfaceCola{
//求和publicintsum(int x,int y);}
Lambda
用于实现抽象方法的重写。
体现语言的优美,重写的时候没有方法名,接口里面只能有一个抽象方法时才能使用lambda方法。这是前提!!!
Cola cc = (int x,int y)->{return x+y;};//Lambda表达式,JDK1.8实现
//接口/抽象类对象 = (参数列表)->{抽象方法进行重写的方法体};
注意:
1.可以不写类型,从前往后推导时,在接口中已经判断了
Cola cc = ( x,y)->{return x+y;};
2.当重写的方法只有一句方法体时,大括号和return也可以省略
Cola cc = ( x,y)-> x+y;
3.重写的参数列表的方法名称不能和前面接口中或声明的时候声明的名称一样。
4.::表示传递静态方法 ArraySort a = Arrays::sort;
5.@FunctionalInterface 注解,函数式接口,只有一个抽象方法。