匿名类是创建对象而不对它的地址进行存储,而局部内部类则是在内部定义的类.
一般匿名内部类只使用一次,用于重写接口或父类的方法,建议只重写一个方法的时候使用.
语法:
new 类名或接口名(参数){ //要重写的方法 }
例子:
interface Walk{ void walk(); } public class Demo1 { public static void main(String args[]) { new Walk() { @Override public void walk() { System.out.println("匿名内部类的walk方法实现"); }.walk(); } }
运行结果:
匿名内部类的walk方法实现
这里的匿名内部类就重写了Walk接口的方法 .
Lamda表达式:
一般作为参数来使用
语法:
()->{ //方法体实现 }
interface Walk{ void walk(); } public class Demo1 { public static void walk1(Walk w){ w.walk(); } public static void main(String args[]) { Demo1.walk1(()->{ System.out.println("Lamda表达式的方法实现"); }); } }
运行结果:lamdab表达式的方法实现