Java接口、lambda表达式与内部类——接口

1.接口概念:

    在Java程序设计语言中,接口不是类,而是对类的一组需求描述,这些类要遵从接口描述的统一格式进行定义

    接口中所有方法自动属于public

    接口绝不能有实例域,在Java SE 8之前,也不能在接口中实现方法

    将类声明为实现某个接口,需要使用关键字implements

2.java.lang.Comparable<T> 1.0:

    int compareTo(T other)

    用这个对象与other进行比较。如果这个对象小于other则返回负值,相等返回0,否则返回正值

3.java.util.Arrays 1.2:

    static void sort(Object[] a)

    使用mergesort算法对数组a中的元素进行排序。要求数组中的元素必须属于实现了Comparable接口的类,并且元素之间必须是可比较的

4.java.lang.Integer 1.0:

    static int compare(int x,int y) 7

    如果x<y返回一个负整数;如果相等返回0;否则返回一个正整数

5.java.lang.Double 1.0:

    static int compare(double x,double y) 1.4

    同上

6.接口的特性:

    不能构造接口的对象,却能声明接口的变量:

    Comparable x;

    接口变量必须引用实现了接口的类对象

    x = new Employee();

    可以使用instance检查一个对象是否实现了某个接口

    接口也可以被扩展,可以使用关键字extends

    接口中可以包含常量

7.接口与抽象类:

    接口可以提供多重继承但是抽象类不行

8.静态方法:

    在Java SE 8中,允许在接口中增加静态方法,通常的做法是将静态方法放在伴随类中

9.默认方法:

    关键字default

    默认方法的一个重要作用是“接口演化”,因为为接口添加一个非默认方法不能保证“源代码兼容”

    在Java API中很多接口都有相应的伴随类用来实现接口的部分方法或全部方法,但是在Java SE 8中这个技术已经过时了,现在可以直接在接口中实现方法

10.解决默认方法冲突:

    如果先在一个接口中将一个方法定义为默认方法,然后又在超类中定义了同样的方法,根据“类优先”原则超类中的方法会被用到

    如果一个类继承了两个接口,这两个接口中拥有相同的默认方法,这个时候编译器就会报错,需要程序员解决二义性

    千万不要让接口重定义Object中的方法,因为没有意义

猜你喜欢

转载自blog.csdn.net/qq_38386085/article/details/80788156