5、接口
接口
接口(interfance)就是一个规范,定义的成员默认就是public static fianl ,定义的方法默认是public abstract
其他类实现(implements)接口,必须实现接口中的方法,除非这个类也是抽象类
使用方法:接口 实例 = new 接口实现类(); 多态
实现多接口,类似于多继承 ,接口可以继承多个接口
JDK1.8 新增了一些语法:
运行在接口中使用static和default
主要理解default,一般都使用接口中需求的方法,不一定全部实现所有方法,这是就可以使用default关键字
接口和抽象类的区别
1、语法上:就把定义,基本用法说说
2、设计思想不同:
抽象类: 设计一个系统的时候,不会马上设计出抽象类(自下而上的一种设计思想:底层东西多了,就往上面开始设计)
考虑的是同类的共性
对象......类........父类.........抽象类
接口:自上二下的设计思想
考虑的是不同类型之间的共同行为(谁需要这个功能,就去实现这个接口)
Comparable接口 -----自然排序
Arrays.sort(数组),底层使用Comparable接口的compareTo(Object o)定义比较规则
自己实现排序
参数排序的数据比较大小
Arrays.sort(数组)
Arrays.sort(自定义对象数组[])
自定义对象数组,使用Arrays.sort()排序,实现Comparable接口中的compareTo方法
compareTo:就是调用方法对象和参数的比较大小的规则:
负数 调用方法对象<参数
0 调用方法对象==参数
正数 调用方法对象>参数
Comparator接口 - - -自定排序
Arrays.sort(数组,Comparator),底层使用Comparator接口的compare(Object o1,Object o2)定义比较规则
自定义排序,程序运行时,可以根据需要自定义排序规则,将实现这个接口的实现类,传递过来就可以实现自定义排序