一、接口中可以定义有方法体的方法
1.定义非静态方法,方法需要用default修饰,实现类不需要对其重写,可实例化后直接调用。
①接口中定义方法
②实现类(空,不需要重写)
③Main方法调用
2.定义静态方法,直接 接口名.方法名 即可调用。
①接口People中定义
②Main方法调用
二、局部内部类调用局部变量,局部变量可不用final修饰,系统会自动为局部变量加上final修饰。
注意:因为局部变量系统会自动为其加上final修饰,所以局部变量的值初始化后就不可变,否则报错。
-----------------------------------分割线-----------------------------------
局部内部类在访问他所在方法中的局部变量必须用final修饰,为什么?
解析:因为当调用这个方法时,局部变量如果没有用final修饰,它的生命周期和方法的生命周期是一样的,当方法弹栈,这个局部变量也会消失,那么如果局部内部类对象还没有马上消失想用这个局部变量,就法用了,如果用final修饰会在类加载的时候进入常量池,即使方法弹栈,常量池的常量还在,也可以继续使用。