# 类与接口

# implements - 类实现接口

如果不同的类里都包含着相同的方法, 我们可以将方法抽象出来组合到一个**接口(interface)**里, 然后在定义类的时候适用implements关键字来将方法注入到类里. 再到类里详细地定义方法.

interface Action {
  eat();
  sleep();
}

class Animal {}

class Human extends Animal implements Action {
  eat() {
    console.log("用筷子吃饭");
  }

  sleep() {
    console.log("在床上睡觉");
  }
}

class Pig extends Animal implements Action {
  eat() {
    console.log("等别人喂");
  }

  sleep() {
    console.log("在猪圈睡觉");
  }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26

一个类还可以实现多个接口:

class Human extends Animal implements Action, OtherActions {
  // ...
}
1
2
3

# extends 接口继承接口

接口与接口之间是可以继承的

interface Alarm {
  alert();
}

interface LightableAlarm extends Alarm {
  lightOn();
  lightOff();
}
1
2
3
4
5
6
7
8