TypeScript具备面向对象编程的基本语法,例如 interface、class、enum等。也具备封装、继承、多态等面向对象基本特征。

  • 定义类、接口、枚举
// 定义枚举
enum Msg {
  // 给枚举项赋值,如果不赋值,默认项就是数字(0,1,2,...)
  HI = 'Hi',
  HELLO = 'hello'
}

// 定义接口
interface A {
  // 定义规则(声明一个方法)
  // 抽象方法接收枚举参数:没有方法体的方法叫抽象方法,凡是在接口或类中定义的方法不需要加function关键字
  say(msg: Msg): void
}

// 定义一个 B 类型,并实现 A 接口
class B implements A {
  // 实现 A 接口的方法
  say(msg: Msg): void {
    console.log(msg + ', I am B');
  }
}

// 类和接口之前是一种实现关系(父子关系)

// 初始化对象(相当于把 子类对象 赋值给 父类类型,多态)
let a: A = new B()
// 调用方法,传递枚举参数
a.say(Msg.HI)
  • 继承
// 定义矩形类
class Rectangle {
  // 成员变量(类中定义变量,不需要加关键字 let)
  private width: number
  private height: number

  // 构造函数(类的初始化方法)
  constructor(width: number, height: number) {
    this.width = width;
    this.height = height;
  }

  // 成员方法
  public area(): number {
    return this.width * this.height
  }
}

// 定义正方形
class Square extends Rectangle {
  constructor(side: number) {
    // 调用父类的构造方法
    super(side, side)
  }
}

let s = new Square(10)
console.log('正方形的面积为:' + s.area())

好了,今天的文章分享和介绍到这里就结束了,希望认真阅读全文的小伙伴,都能有所收获哦!当然了,如果在学习过程中遇到问题,也欢迎一起探讨!

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐