Java学习总结(四) —— Java中的接口
一、接口概述
接口,是Java语言中一种引用类型,是方法的集合,如果说类的内部封装了成员变量、构造方法和成员方法,那么 接口的内部主要就是封装了方法,包含抽象方法(JDK 7及以前),默认方法和静态方法(JDK 8),私有方法 (JDK 9)。
接口的定义,它与定义类方式相似,但是使用interface关键字。它也会被编译成.class文件,但一定要明确它并不是类,而是另外一种引用数据类型。
(引用数据类型:数组,类,接口)
接口的使用,它不能创建对象,但是可以被实现( implements ,类似于被继承)。一个实现接口的类(可以看做 是接口的子类),需要实现接口中所有的抽象方法,创建该类对象,就可以调用方法了,否则它必须是一个抽象类。
二、定义格式
代码如下:
public interface InterfaceDemo01 {
// 抽象方法
public abstract void method01();
// 默认方法-->JDK8
public default void method02() {
}
// 静态方法-->JDK8
public static void method03() {
}
// 私有方法-->JDK9
private void method04() {
}
}
1. 含有抽象方法的接口
抽象方法:使用 abstract 关键字修饰,可以省略,没有方法体。该方法供子类实现使用,子类必须实现父类的抽象方法。
代码如下:
public interface InterfaceDemo02 {
public abstract void methodDemo();
}
2. 含有默认方法的接口
默认方法:使用 default 修饰,不可省略,供子类调用或者子类重写。
代码如下:
public interface InterfaceDemo03 {
// 默认方法-->JDK8
public default void method02() {
}
}
3. 含有静态方法的接口
静态方法:使用 static 修饰,供接口直接调用。
代码如下:
public interface InterfaceDemo03 {
// 静态方法-->JDK8
public static void method03() {
}
}
4.含有私有方法和私有静态方法的接口
私有方法:使用 private 修饰,供接口中的默认方法或者静态方法调用。(JDK9才允许使用私有方法)
代码如下:
public interface InterfaceDemo04 {
// 私有方法-->JDK9
private void method04() {
}
// 私有静态方法-->JDK9
private static void method05() {
}
}
三、接口的基本实现
类与接口的关系为 实现 关系,即类实现接口,该类可以称为接口的实现类,也可以称为接口的子类。实现的动作类似继承,格式相仿,只是关键字不同,实现使用 implements 关键字。
非抽象子类实现接口:
- 1.【必须】重写接口中所有抽象方法;
- 2.继承接口的默认方法;
- 3.可以直接调用,也可以重写后调用。
代码如下:
public class InterfaceDemo05 implements InterfaceDemo01 {
// 对应接口(InterfaceDemo01)中的抽象方法,必须实现该抽象方法【必须实现】
@Override
public void method01() {
}
// 对应接口(InterfaceDemo01)中的默认方法,可以实现该抽象方法【可以实现】
@Override
public void method02() {
}
}
1. 抽象方法的使用演示
子类必须实现父类中定义的所有的抽象方法
代码如下: