- 接口所有的方法默认都是public
- 可以声明接口变量,赋值为实现该接口的类object
- 接口可以继承接口
- 接口可以有常量,永远默认为public static final
- 在java8之后,可以在接口中添加public static method,并实现
- 在接口中可以用default关键字定义默认方法,这样使用该接口的类可以不用实现该方法
- 当不同接口有方法名字冲突时,编译器会报错
当接口和父类方法名字冲突时,父类赢 - lambda 表达式中如果一个方法有返回值,那么所有的branch都应该有返回值
- lambda实现functional interface,即一个接口只有一个abstract的方法,作为参数传递给其他方法,比如Array.sort(arrayName, Comparator)
- :: 操作符,method reference
- object::instanceMethod
- Class::staticMethod 上边这两个方法,参数都是method的参数
- Class::instanceMethod 这个的第一个参数是调用instanceMethod的
- lambda可用与构造函数,比如Person::new
- lambda饮用的外边的参数必须是final的,因为lambda可能会比方法存活更长时间,因此,lambda会捕获那格参数的值,并保存在其中
- lambda的本质是一段代码,可以被传来传去,并可以稍后执行一次或者多次
- inner class
- static field必须是final
- inner class没有static 方法
- inner class可以access outer的private field,但是反之不可以
- inner class可以定义在类的方法中,这样,只对该方法可见
- 匿名inner class:
new SuperType(construction parameters)
{
inner class methods and data
}
SuperType是被implement的接口名或者是一个被继承的superclass名 - 只有内部类可以被生命为静态的,静态类只可以访问外部静态变量,当不需要访问外部类的其他成员变量时,声明为静态内部类,可以有static的变量和方法
网友评论