• 丁鹿学堂前端培训:typescript之抽象类和接口简介


    ### 抽象类:

    以**abstract** 开头的是抽象类,只能作为父类给子类继承,不能用来创建对象

    ```
    abstract class Animal{
      name:string;
      age:number;
      constructor(name:string,age:number){
        this.name = name
        this.age = age
      }
      say(){
        console.log(111)
      }
    }
    ```

    抽象方法:

    1.  抽象方法必须定义在抽象类中
    1.  抽象方法继承的之类必须重写
    1.  抽象方法没有返回值
    1.  抽象方法就是在方法前面加abstract

    ```
     abstract class Animal{
      name:string;
      age:number;
      constructor(name:string,age:number){
        this.name = name
        this.age = age
      }
      abstract say():void
    }
    ```

    接口:

    用来定义一个类的结构。

    关键字:**interface**

    1 **可以代替类型声明type 去定义对象的结构。注意,结构里面的是分号**

    ```
      interface myInterface{
        name:string;
        age:number;
      }
      const person:myInterface = {
        name:'zhangsan',
        age:18
      }
    ```

    2 **用接口去定义类:**

    类实现接口的关键字:**implements**

    接口可以定义多个相同名字的,类型约束以两个的合在一起为标准。

    接口的意义:实际上就是定义了一个规范,只要实现了接口,就是满足了规范,就可以在符合的 场景中使用。

    注意:在接口中所有定义的方法类型都是void

    ```
      interface personInterface{
        name:string;
        age:number;
        say():void
      }
      class Person implements personInterface{
        name: string;
        age:number;
        constructor(name:string,age:number){
          this.name = name
          this.age = age
        }
        say(): void {
          console.log(1)
        }
      }
    ```
    以上就是ts中的抽象类,接口的简单使用,还要在自己的项目中刻意练习,才能熟练掌握。

  • 相关阅读:
    关于myBase个人笔记数据库的同步
    Maven学习笔记
    centos7—安装mysql
    Python中内置数据库!SQLite使用指南! ⛵
    模拟算法及其优化
    同步与异步区别
    知识图谱实体对齐2:基于GNN嵌入的方法
    强制缓存和协商缓存的区别是什么?对称、非对称加密的区别是什么?
    React魔法堂:echarts-for-react源码略读
    EPICS记录参考--计算输出记录(calcout)
  • 原文地址:https://blog.csdn.net/qq_38525381/article/details/125431270