Welcome to JS Bin
Load cached copy from
 
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width">
  <title>JS Bin</title>
</head>
<body>
</body>
</html>
 
class Rectangle {
  constructor(height, width) {
    this._name = 'Rectangle'
    this._height = height
    this._width = width
  }
  
  sayName() {
    console.log(`Hi, I am a ${this._name}`)
  }
  calculateArea() {
    return this._height * this._width
  }
}
class Square extends Rectangle {
  constructor(length) {
    // Here, it calls the parent class's constructor with lengths
    // provided for the Rectangle's width and height
    super(length, length)
    // Note: In derived classes, super() must be called before you
    // can use 'this'. Leaving this out will cause a reference error.
    this._name = 'Square'
  }
  calculateSurfaceArea() {
    return this.calculateArea() * 6
  }
}
const myRectangle = new Rectangle(5, 7)
myRectangle.sayName()
const rectangleArea = myRectangle.calculateArea()
console.log(rectangleArea)
console.log('----')
const mySquare = new Square(7)
mySquare.sayName()
const squareArea = mySquare.calculateArea()
console.log(squareArea)
// call calculateSurfaceArea() method owned by
// the child class (Square)
const surfaceAreaOfSquare = mySquare.calculateSurfaceArea()
console.log(surfaceAreaOfSquare)
Output

You can jump to the latest bin by adding /latest to your URL

Dismiss x