接口

1、接口:代表一组行为标准

2、如何声明接口?

【修饰符】 interface 接口名{
   
}
【修饰符】 interface 接口名 extends 父接口们{
   
}

3、接口的成员

JDK1.8之前:

(1)公共的静态的常量:public static final 这三个修饰符可以全部或部分省略

(2)公共的抽象方法:public abstract 这两个修饰符也可以全部或部分省略

JDK1.8之后:

(3)公共的默认方法:public default,其中default是不能省略

(4)共的静态方法:public static,其中static是不能省略

JDK1.9之后:

(5)私有的方法

4、如何实现接口?

【修饰符】 class 实现类 implements 父接口们{
   
}
【修饰符】 class 类名 extends 父类 implements 父接口们{
   
}

Java类与类之间只支持单继承,但是类与接口之间支持多实现。

如果继承和实现一起,必须先写继承后写实现

5、接口可以继承接口

【修饰符】 interface 接口名 extends 父接口们{
   
}

6、接口不能直接实例化,只能实现类的对象

7、默认方法可能会出现冲突?

(1)当一个实现类同时实现多个接口,多个接口中出现了“方法签名”相同的默认方法时,那么需要处理?

A:保留其中一个的实现

接口名.super.方法

B:完全重写

(2)当一个实现类继承父类,又实现接口,父类中的某个方法与接口中的默认方法签名相同,我们可以选择处理?

A:默认编译器保留的是父类的

B:我可以手动选择父接口的

接口名.super.方法

C:选择重写

8、面试题陷阱

(1)当父类与父接口中的成员变量重名时,我们要在子类中访问的话,需要进行区别?

父类的:super.进行访问

接口的:接口名.进行访问

(2)接口中的成员变量一定是常量,值是不能修改的

 

9、常见的接口

(1)java.lang.Comparable:自然排序接口

抽象方法:public int compareTo(Object obj)

(2)java.util.Comparator:定制排序接口

抽象方法:public int compare(Object o1, Object o2)

(3)java.lang.Cloneable

当你要重写Object类中Object clone()方法时,需要实现这个接口。

原文地址:https://www.cnblogs.com/panyizuoshan/p/11454729.html