JSOOP ES6继承(extends、super和方法重写)

72 阅读1分钟
  • extends 
class Shape {
  move() {
    console.log('move')
  }
}
class Circle extends Shape {
  draw() {
    console.log('draw')
  }
}

const c = new Circle()

  •  super
class Shape {
  constructor (color) {
    this.color = color
  }
  move() {
    console.log('move')
  }
}
class Circle extends Shape {
  constructor(color, radius) {
    super(color)
    this.radius = radius
  }
  draw() {
    console.log('draw')
  }
}

const c = new Circle('red', 1)

  •  方法重写及调用基类的方法
class Shape {
  constructor (color) {
    this.color = color
  }
  move() {
    console.log('move')
  }
}
class Circle extends Shape {
  constructor(color, radius) {
    super(color)
    this.radius = radius
  }
  move() {
    super.move() // 调用父类的move
    console.log('circle move') // 自己的move
  }
  draw() {
    console.log('draw')
  }
}

const c = new Circle('red', 1)