Skip to content

Inheritance

Creating a parent class

If we want to create a set of classes that share some common functionality, we should create a parent class. This parent class will contain the shared functionality, and the child classes will inherit from it.

js
class SmartDevice {
  constructor() {
    this.isOn = false
  }

  togglePower() {
    this.isOn = !this.isOn
  }
}

Inheriting from a parent class

To inherit from a parent class, we use the extends keyword, and then call the super() method in the child class's constructor.

INFO

The super() method calls the parent class's constructor, passing in any arguments that are needed for the parent class's constructor.

js
class SmartCamera extends SmartDevice {
  constructor(location) {
    super()
    this.location = location
    this.batteryLife = 100
  }
}

const poolCam = new SmartCamera('Pool House')
poolCam.togglePower()
console.log(poolCam)
console
SmartCamera {
  isOn: true,
  batteryLife: 100,
  location: 'Pool House'
}

Notice that the SmartCamera class has access to the togglePower() method and the isOn property, even though we didn't define them in the SmartCamera class. This is because SmartCamera inherits from SmartDevice.