1.语法规则
接口是抽象类的更进一步. 抽象类中还可以包含非抽象方法, 和字段。
而接口中包含的方法都是抽象方法, 字段只能包含静态常量.
interface IShape {
/*public abstract */ void draw();
/*public static final*/ int num = 10;
}
提示:
- public, static, final 的关键字都可以省略. 省略后的 num 仍然表示 public 的静态常量.
- 我们创建接口的时候, 接口的命名一般以大写字母 I 开头.
- 接口的命名一般使用 “形容词” 词性的单词.
- 阿里编码规范中约定, 接口中的方法和属性不要加任何修饰符号, 保持代码的简洁性.
代码示例
//使用 interface 定义一个接口
interface IShape{
//接口中的方法一定是抽象方法, 因此可以省略 abstract .
//接口中的方法一定是 public, 因此可以省略 public
void draw();
}
//Cycle 使用 implements 继承接口. 此时表达的含义不再是 "扩展", 而是 "实现"
class Cycle implements IShape{
@override
public void draw(){
system.out.println("o");
}
}
public class Test{
public static void main(String[] args){
//在调用的时候同样可以创建一个接口的引用, 对应到一个子类的实例.
//接口不能单独被实例化.
IShape shape = new Rect();
shape.draw();
}
}
- 使用 interface 定义一个接口
- 接口中的方法一定是抽象方法, 因此可以省略 abstract
- 接口中的方法一定是 public, 因此可以省略 public
- Cycle 使用 implements 继承接口. 此时表达的含义不再是 “扩展”, 而是 “实现”
- 在调用的时候同样可以创建一个接口的引用, 对应到一个子类的实例.
- 接口不能单独被实例化.
2.实现多个接口
有的时候我们需要让一个类同时继承自多个父类. 这件事情在有些编程