//创建MyRunnable类的对象
class MyRunnable implements Runnable{
@Override
public voidrun(){
System.out.println("多线程程序启动了...");}}
public class LambdaDemo {
public staticvoidmain(String[] args){//实现类的方式实现需求
MyRunnable my = new MyRunnable();//创建Thread类的对象,把MyRunnable的对象作为构造参数传递
Thread t = new Thread(my);//启动线程
t.start();}}
改进
public class LambdaDemo {
public staticvoidmain(String[] args){//匿名内部类的方式改进
new Thread(new Runnable(){
@Override
public voidrun(){
System.out.println("多线程程序启动了...");}}).start();}}
public interface Eatable {voideat();}
class EatableImpl implements Eatable{
@Override
public voideat(){
System.out.println("一天一苹果,医生远离我");}}
public class EatableDemo {
public staticvoidmain(String[] args){//在主方法中调用useEatable方法
Eatable e = new EatableImpl();useEatable(e);}
private staticvoiduseEatable(Eatable e){
e.eat();}}
匿名类改进
public class EatableDemo {
public staticvoidmain(String[] args){//匿名内部类useEatable(new Eatable(){
@Override
public voideat(){
System.out.println("一天一苹果,医生远离我");}});}
private staticvoiduseEatable(Eatable e){
e.eat();}}
lambda表达式
public class EatableDemo {
public staticvoidmain(String[] args){//用Lambda表达式useEatable(()->{
System.out.println("一天一苹果,医生远离我");});}
private staticvoiduseEatable(Eatable e){
e.eat();}}
练习2 抽象方法带参无返回值
public interface Flyable{voidfly(String s);}
匿名内部类改进
public class FlyableDemo {
public staticvoidmain(String[] args){//在主方法中调用useFlyable方法//匿名内部类useFlyable(new Flyable(){
@Override
public voidfly(String s){
System.out.println(s);
System.out.println("飞机自驾游");}});}
private staticvoiduseFlyable(Flyable f){
f.fly("风和日丽,晴空万里");}}
lambda 表达式改进
public class FlyableDemo {
public staticvoidmain(String[] args){//LambdauseFlyable((String s)->{
System.out.println(s);
System.out.println("飞机自驾游");});}
private staticvoiduseFlyable(Flyable f){
f.fly("风和日丽,晴空万里");}}
练习3 抽象方法带参有返回值
public interface Addable {intadd(int x,int y);}
public class AddableDemo {
public staticvoidmain(String[] args){//在主方法中调用useAddle方法//LambdauseAddable((int a,int b)->{return a+b;});}
private staticvoiduseAddable(Addable a){int sum = a.add(10,20);
System.out.println(sum);}}
定义一个测试类(AddableDemo),在测试类中提供两个方法
①、一个方法是:useAddable(Addable a)
②、一个方法是主方法,在主方法中调用useAddable方法