美文网首页
8.类与接口的关系

8.类与接口的关系

作者: 我性本傲 | 来源:发表于2019-11-27 12:01 被阅读0次

    一个接口可以约束类成员有哪些属性以及它们的类型,只能约束类的公有成员

    类实现接口的时候必须实现接口中所有的属性和方法。
     interface Huma {
        name: string;
        eat() : void;
     }
    class Asian implements Human{
      constructor(name:string) {
        this.name  = name;
      }
        name:string
        eat (){}
        sleep() {} //类定义了一个自己的属性或者方法是可以的
    }
    
    接口的继承

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

    用Man接口继承Huma接口
    interface Man extends Huma{
       run() : void // 给Man添加方法
    }
    interface Child{
       cry() : void // 给Child添加方法cry
    }
    // 继承多个
    interface Boy extends Man,Child{}
    // 定义对象,符合Boy接口的定义
    let boy:Boy = {
       // 这时候提示对象需要包含四个属性:Huma,Child,Man这三个接口中的属性和方法
      name:'',
      eat() {},
      run() {},
      cry() {}
    }
    // 以上可以看出,接口的继承可以抽离可重用的接口,把多个接口合并成一个接口
    
    接口继承类

    接口把类的成员

    class Auto {
      state = 1
      private state2 = 2 
    }
    interface AutoInterface extends Auto {
       // 接口继承Auto这个类,接口中隐含了state属性
    }
    // 要想实现AutoInterface这个接口,只需要类的成员中包含state属性就可以了
    class C implements AutoInterface { 
      state = 1
      // 这里拿不到private state2,因为C不是Auto的子类,自然也不能包含它的非共有成员---报错
    }
    class AutoChild extends Auto implements AutoInterface{
       // 这里没必要实现state属性,因为AutoChild是Auto的子类
       // 接口在抽离类的成员时候,不仅抽离了公共成员,而且抽离了私有成员和受保护成员
      //  这里可以拿到private state2
    }
    
    接口和类的关系.png

    相关文章

      网友评论

          本文标题:8.类与接口的关系

          本文链接:https://www.haomeiwen.com/subject/tpyywctx.html