五、类与接口的关系

# 五、类与接口的关系
* 类类型接口:一个接口可以约束类成员有哪些属性以及类型
* 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 {
}
/*
接口抽离类的时候:不仅抽离了公共成员,还抽离了私有成员,被保护成员
*/
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60

上次更新: 2021/04/22, 00:08:06