案例1
public interface Eatable {
public void eat();
}
public class EatableDemo {
public static void main(String[] args) {
useEatable(new Eatable() {
@Override
public void eat() {
System.out.println("--eat--");
}
});
Eatable eatable = ()->{
System.out.println("-eat-");
};
eatable.eat();
useEatable(()->{
System.out.println("---eat---");
});
}
public static void useEatable(Eatable e){
e.eat();
}
}
案例2
public interface Addable {
int add(int x,int y);
}
public class AddableDemo {
public static void main(String[] args) {
useAddable(new Addable() {
@Override
public int add(int x, int y) {
System.out.println(x+y);
return x+y;
}
});
Addable addable = (x,y)->{
return x+y;
};
System.out.println(addable.add(5,6));
useAddable((x,y)->{
System.out.println(x+y);
return x+y;
});
}
public static void useAddable(Addable a){
a.add(3, 4);
}
}
案例3
public interface Flyable {
public void fly(String s);
}
public class FlyableDemo {
public static void main(String[] args) {
useFlyable(new Flyable() {
@Override
public void fly(String s) {
System.out.println("--fly--");
}
});
Flyable flyable = (String s)->{
System.out.println("-fly-");
};
flyable.fly("");
useFlyable((s)->{
System.out.println("---fly---");
});
}
public static void useFlyable(Flyable f){
f.fly("fly");
}
}