类类型接口

类实现接口时,必须实现接口中所有成员;
1、类中可以有接口里面没有的属性或者方法,但是接口中有的方法,类中一定要有;
2、接口只能约束类的公有成员

  1. interface Human {
  2. name: string;
  3. eat(): void;
  4. }
  5. class Asian implements Human {
  6. constructor(name: string) {
  7. this.name = name;
  8. }
  9. name: string;
  10. eat() {};
  11. sleep() {}
  12. }

接口的继承

接口可以像类一样相互继承,并且一个接口可以继承多个接口

interface Human {
    name: string;
    eat(): void;
}
class Asian implements Human {
    constructor(name: string) {
        this.name = name;
    }
    name: string;
    eat() {};
    sleep() {}
}

interface Man extends Human {
    run(): void;
}
interface Child {
    cry(): void;
}
// 继承多个接口,使用逗号(,)隔开
// 这个时候,Boy接口要包含Man和Child的所有属性
interface Boy extends Man, Child {}

let boy: Boy = {
    name: '',
    eat() {},
    run() {},
    cry() {}
}

接口的继承可以抽离出可重用的接口,也可以将多个接口合并成一个接口。

类和接口的关系图

image.png

  • 接口之间是可以通过extends相互继承,这样能够实现接口的复用
  • class(类)之间也可以通过extends相互继承,能够实现方法和属性的复用
  • 接口是可以通过类来实现的,但是接口只能约束类的公有成员
  • 接口也可以抽离出类的公有成员,抽离的时候可以包括公有成员、私有成员和受保护成员。