概念
接口(英文:Interface),在JAVA编程语言中是一个抽象类型,是抽象方法的集合,接口通常以interface来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
除非实现接口的类是抽象类,否则该类要定义接口中的所有方法。
接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。另外,在 Java 中,接口类型可用来声明一个变量,他们可以成为一个空指针,或是被绑定在一个以此接口实现的对象。
补充:如果对接口不是很了解,请参考我另一篇博客详细介绍:https://www.cnblogs.com/chenyanbin/p/11020578.html
基本格式
1 public interface 接口名称test {
2 //任何类型 final, static 字段
3 //抽象方法
4 }
接口当中包含的组成部分有:
1、抽象方法
2、常量
3、默认方法【java 8】
4、静态方法【java 8】
5、私有方法【java 9】
抽象方法
注意:
1、接口中的抽象方法,修饰符如果写必须是:public abstract
2、接口中的抽象方法,修饰符可以省略不写,默认就是:public abstract
3、抽象方法只有方法头,不能有方法体大括号
1 /*
2 * 如何定义一个抽象方法
3 * public abstract 返回值类型 方法名称(参数类型 参数名称)
4 */
5 public interface Animal {
6 // 定义一个抽象方法:吃东西
7 public abstract void Eat();
8
9 // 定义另一个抽象方法:睡觉
10 // 省略了public abstract也照样是抽象方法
11 /* public abstract */ void Sleep();
12 }
接口实现
1 /*
2 * 如何要使用定义好的接口,必须有一个接口的“实现类”
3 * 定义实现类格式为
4 *
5 * public class 实现类名称 implements 接口名称{
6 * //重写所有的抽象方法
7 * }
8 *
9 */
10 public class Cat implements Animal {
11
12 @Override
13 public void Eat() {
14 System.out.println("猫爱吃鱼~");
15 }
16
17 @Override
18 public void Sleep() {
19 System.out.println("猫喜欢睡觉~");
20 }
21
22 public void CatchMouse() {
23 System.out.println("猫抓老鼠~");
24 }
25 }
函数式接口
1 /*
2 * 函数式接口
3 * 有且仅有一个抽象方法的接口
4 *
5 * 在接口上加上:@FunctionalInterface
6 */
7 @FunctionalInterface
8 public interface Calculator {
9 int sum(int a, int b);
10 }