接口和抽象类是Java面向对象设计的基础机制
接口是对行为的抽象,是抽象方法的合集,不能实例化
抽象类也不能实例化,用abstract关键字来修饰class,代码的复用,定义多个方法供子类使用
比如collection中的AbstractList
首先说,Java不支持多继承,这种限制,规范代码的实现的时候,也有一定的局限性
接口常见的职责是定义一系列对象的特征,除此外,职责还可以用来声明部分东西,比如Cloneable
Serializable
当然,在声明方面,并不如Annotation好使,毕竟注解可以指定参数和值
在Java8,还新定义了函数式的接口比如Runnable Callable都是函数式接口
还可以在接口中有着默认方法实现
interface增加了对default method的支持,colleciotn体系就定义了一系列的default method,增加了Lambda Stream相关的功能,如下所示