* 类类型接口:一个接口可以约束类成员有哪些属性以及类型
* 1. 类实现接口时,必须实现接口里所有的属性,类可以定义自己的方法
* 2. 接口只能约束类的共有成员
* 3. 接口不能约束类的构造函数
*
*/
interface Human {
// new (name: string): void
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
}
interface Boy extends Man, Child {}
let boy: Boy = {
name: '',
run() {},
eat() {},
cry() {}
}
/*
接口继承类
*/
class Auto {
state = 1
private state2 = 0
}
interface AutoInterface extends Auto {
}
class C implements AutoInterface {
state = 1
}
class Bus extends Auto implements AutoInterface {
}
/*
接口抽离类的时候:不仅抽离了公共成员,还抽离了私有成员,被保护成员
*/