4.1 接口 内部类 lambda
1.接口
interface 是一种特殊的抽象类
优点:
是一个特殊的抽象类
是一个引用数据类型(类,接口,数组)
实现解耦 耦合度
类只能单继承 ,接口多实现
更便于后期维护
定义开发规范
功能(抽象方法)的集合
注意:
父类需要被子类继承 ,接口需要被类实现 implements
继承: 子类一旦继承父类,就可以直接使用父类的成员
实现: 接口中一般都是大量的抽象方法,必须要被实现,重写方法才可以使用,实现一个接口,需要重写抽象方法,侧重点在于 实现
实现与继承非常像,实现也好,继承也好,都能够有权使用接口|父类中的成员|功能,但是侧重点不一样
接口中不能定义普通的方法,大部分为抽象方法
接口不能实例化
使用:
实现类实现接口,重写所有的抽象方法,通过实现类对象使用接口中的内容
抽象类或者接口的使用,最终都需要具体的子类|实现类,根据子类或者实现类的对象调用
一个类可以同时继承父类,并且实现多个接口,先继承后实现
类继承一个父类,类需要只能实现接口
接口不能实现接口,接口只能继承接口,可以多继承
2.内部类
分类:
成员内部类
局部内部类
私有内部类
静态内部类
匿名内部类 ***
Lambda表达式
匿名内部类 *****
简化实现类|子类的,因为接口或者抽象类中可能纯在抽象方法,必须在实现类|子类中重写,可以通过匿名内部类简化实现类|子类
创建一个匿名内部类的对象
new 接口名|抽象类名() {
匿名内部类的类体;
}
创建的就是当前这个接口的实现类|这个抽象类的子类 的对象
3.lambda表达式
简化匿名内部类对象的写法
表达式结构: ()->{}
():重写的抽象方法的参数列表
->:箭头函数
{}:重写的抽象方法的方法体
Demo demo = () -> {}