关于JAVA 1.8版本以后接口中新增支持定义默认(default)方法以及静态(static)方法:
为什么引入默认方法:
1.以前的接口中只要定义了方法,都需要在实现类中进行实现。即使是个空的实现也要写出来,所以新的特性中,添加的默认方法无需在实现类中实现,如果想实现重写就可以。
2.为接口添加新的默认方法不会破坏原有接口的实现
3.不需要修改接口的实现类,就可以为接口添加新的方法实现。
4.对于已经发布的版本,是无法在给接口添加新方法的同时而不影响已有的实现,因此引进来default,目的是为了解决接口修改与已有的实现不兼容的问题。
为什么引入静态方法:
静态方法特点:
1.只能是静态方法所属的类来调用。
2.必须有方法体,即使方法体中没有实现
3.实现接口的类或者子接口不会继承接口中的静态方法,static方法和default不能同时使用。
用途:
1.因为是静态的所以不能被实现类重写。
2.常常可以作为工具型的方法,比如空值检查,集合类排序等等。