读书_重读java核心技术
读书_重读java核心技术
6.接口,lambda与内部类
接口
传统接口的特性
- 接口绝不能含有实例域
- 接口在1.8之前绝不能含有方法实现
- 方法不能引用实例域
- 接口中可以含有常量
- 更专用的接口可以继承更抽象的接口,提供更多抽象方法
- 接口中的类全部修饰为public ,接口中的常量全部修饰为public static final
1.8接口新特性
- 接口中可以包含静态方法
- 接口中可以包含默认方法
- 默认方法冲突(待学习)
clone 拷贝(待学习)
lambda
- 回调:是一种常见的设计模式,可以指出某个特定事件发生时应该采取的动作.
- 特性:
- lambda表达式返回值是由上下文推倒出来的,所以只能有一种.也就是说,不同分支返回不同返回值类型是不合法的.
- lambda表达式本质是接口的实现类实例,所以可以用接口类型的引用来保存.
- 想要理解lambda的用途,首先要理解表示的接口实例的用途和调用实例的方法的用途.
- 变量作用域:
lambda表达式可以捕获外部变量,但变量必须是不可改变的最终态
::方法引用
- 用于已存在的想要传递到其他代码的动作