接口:1.接口中所有方法都是抽象方法。
2.其实可以有具体的实现方法。这个方法是被default修饰的(JDK1.8加入的)
3.接口当中定义的成员变量默认为常量。
4.接口当中的成员变量默认为:public static final
5.接口当中的成员方法默认为:public abstract
6.接口是不能被实例化的。
7. 接口和类之间的关系 :implements
8.一旦一个类实现了这个接口,那么必须重写接口里边的抽象方法。
9.接口的出现是为了解决单继承问题。
10.只要这个类实现了该接口,那么你就可以实现向上转型了。
11.使用interface定义一个接口。
12.接口中的方法一定是抽象方法,因此可以省略abstract
13.接口中的的方法一定是public,因此可以省略public
14.Cycle使用implements继承接口,此时表达的含义不在是继承,而是实现
15.在调用的时候同样可以创建一个接口的引用,对应一个子类的实例。
16.接口不能被单独实例化。
17.一个类可以继承一个普通类或者一个抽象类,并且可以同时实现多个接口。
接口的实例:
- 一般情况下:自定义类型进行比较需要的是可比较的。
- Comparable接口
- 在sort方法中会自动调用compareTo方法compareTo的参数是Object,其中传入的就是Student类型的对象,然后比较当前对象和参数对象的大小关系(按分数算)
- 如果当前对象应排在参数对象之前,返回小于0的数字。
- 如果当前对象应排在参数对象之后,返回大于0 的数字。
- 如果当前对象与参数对象不分前后,返回0。
注意事项:
对于sort方法来说,需要传入的的数组的每个对象都是“可比较的”,需要具备compareTo这样的能力,通过重写compareTo方法的方式,就可以定义比较规则。