class-类的继承

class Tree {
  private x: any
  private y: any

  //构造函数 只允许一个构造器
  constructor(x, y) {
    this.x = x
    this.y = y
  }

  //类的方法
  async getValue() {
    console.log(`x,y的值:`, JSON.stringify({ x: this.x, y: this.y }))
  }

  async describe(x) {
    console.log(`${x}:这是普通的树-${this.x}`)
  }

  async value() {
    console.log('有很多的作用。例如:绿化、造纸')
  }

  // 类的静态方法
  static advice() {
    console.log('我们一定要保护树木!')
  }
}

class Poplar extends Tree {
  constructor(x, y) {
    super(x, y) //继承父类
  }

  // 子类中存在与主类相同的方法时(只要方法一致),主类方法将被过载
  async describe(x) {
    console.log(`这是颗${x}树`)
  }
  // async describe() {
  // console.log(`这是颗杨树`)
  // }

  async getMsg(){
    console.log('子类自己的方法!')
  }
}
Poplar.advice() // 我们一定要保护树木!
let poplar = new Poplar(2,3)
poplar.value() // 有很多的作用。例如:绿化、造纸
poplar.describe('杨') // 这是颗杨树
poplar.getValue() // x,y的值: {"x":2,"y":3}
poplar.getMsg() // 子类自己的方法!

 


上一篇:LoRa网络中的传感终端


下一篇:《动手搭建智能家居系统》——2.2 传感器和执行器