类类型接口
类实现接口时,必须实现接口中所有成员;
1、类中可以有接口里面没有的属性或者方法,但是接口中有的方法,类中一定要有;
2、接口只能约束类的公有成员
interface Human {
name: string;
eat(): void;
}
class Asian implements Human {
constructor(name: string) {
this.name = name;
}
name: string;
eat() {};
sleep() {}
}
接口的继承
接口可以像类一样相互继承,并且一个接口可以继承多个接口
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() {}
}
接口的继承可以抽离出可重用的接口,也可以将多个接口合并成一个接口。
类和接口的关系图
- 接口之间是可以通过extends相互继承,这样能够实现接口的复用
- class(类)之间也可以通过extends相互继承,能够实现方法和属性的复用
- 接口是可以通过类来实现的,但是接口只能约束类的公有成员
- 接口也可以抽离出类的公有成员,抽离的时候可以包括公有成员、私有成员和受保护成员。