1. * 类类型接口:一个接口可以约束类成员有哪些属性以及类型
    2. * 1. 类实现接口时,必须实现接口里所有的属性,类可以定义自己的方法
    3. * 2. 接口只能约束类的共有成员
    4. * 3. 接口不能约束类的构造函数
    5. *
    6. */
    7. interface Human {
    8. // new (name: string): void
    9. name: string;
    10. eat(): void;
    11. }
    12. class Asian implements Human {
    13. constructor(name: string) {
    14. this.name = name
    15. }
    16. name: string
    17. eat() {}
    18. sleep() {}
    19. }
    20. /**
    21. * 接口的继承:接口可以像类一样相互继承,并且一个接口可以继承多个接口
    22. * 可以抽离可重用的接口,合并成一个接口
    23. */
    24. interface Man extends Human {
    25. run(): void
    26. }
    27. interface Child {
    28. cry(): void
    29. }
    30. interface Boy extends Man, Child {}
    31. let boy: Boy = {
    32. name: '',
    33. run() {},
    34. eat() {},
    35. cry() {}
    36. }
    37. /*
    38. 接口继承类
    39. */
    40. class Auto {
    41. state = 1
    42. private state2 = 0
    43. }
    44. interface AutoInterface extends Auto {
    45. }
    46. class C implements AutoInterface {
    47. state = 1
    48. }
    49. class Bus extends Auto implements AutoInterface {
    50. }
    51. /*
    52. 接口抽离类的时候:不仅抽离了公共成员,还抽离了私有成员,被保护成员
    53. */

    五、类与接口的关系 - 图1