目录
1. 概念
接口在 Java 中是一个抽象类型,是抽象方法的集合,是抽象类的更进一步。接口通常以 Interface 来声明。一个类通过继承接口的方式,从而来继承接口的抽象方法。
2. 语法规则
在打印图形的示例中(可以看上一篇),父类中没有 Shape 没有包含别的非抽象方法,所以也可以将它设计成一个接口。
interface IShape {
void draw();
}
class Cycle implements IShape {
@Override
public void draw() {
System.out.println("○");
}
}
public class Test {
public static void main(String[] args) {
IShape shape = new Rect();
shape.draw();
}
}
接口并不是类,编写接口的方式和类很相似,但是它们属于不同的概念。类描述对象的属性和方法。接口则包含类要实现的方法。
接口中只能包含抽象方法。对于字段来说, 接口中只能包含静态常量(final static)。
interface IShape {
void draw();
public static final int num = 10;
}
小结:
- 使用 interface 定义一个接口.
- 子类使用 implements 实现接口,子类可以同时实现多个接口 implements 多个接口。
- 接口中的方法一定是抽象方法, 因此可以省略 abstract.
- 接口中的方法一定是 public, 因此可以省略 public.
- Cycle 使用 implements 继承接口,此时表达的含义不再是 "扩展", 而是 "实现",扩展指的是当前已经有一定的功能了, 进一步扩充功能。实现指的是当前啥都没有, 需要从头构造出来。
- 接口无法被实例化,但是可以被实现。一个实现接口的类,必须实现接口内所描述的所有方法,否则就必须声明为抽象类。
- 一个类如果同时继承抽象类,实现接口,请先 extends 一个类,而后 implements 多个接口。
- Java 中允许同时实现多个接口,不允许多继承。
3. 接口的命名规则
- 我们创建接口的时候, 接口的命名一般以大写字母 I 开头。
- 接口的命名一般使用 "形容词" 词性的单词。
- 阿里编码规范中约定, 接口中的方法和属性不要加任何修饰符号, 保持代码的简洁性。
4. 实现多个接口
有时候我们需要一个类继承多个父类,但是在 Java 中只支持单继承,所以这时候就可以用多接口实现这种多继承的效果。
例子:
先通过类表示一组动物ÿ