# extends से इनहेरिटेंस — जावास्क्रिप्ट

Source: https://www.geekswithgeeks.com/hi/javascript/js-inheritance

> एक क्लास के ऊपर दूसरी क्लास बनाना, और parent को कॉल करना।

## extends और super

`extends` किसी subclass को parent से जोड़ता है; `super.method()` override के अंदर से parent का वर्ज़न बुलाता है।

```js
class Animal {
  constructor(name) { this.name = name; }
  speak() { return `${this.name} makes a sound.`; }
}
class Dog extends Animal {
  speak() {
    return `${super.speak()} Specifically, a bark!`;
  }
}
console.log(new Dog("Rex").speak());
```

## इनहेरिट क्यों करें

`extends` किसी subclass को parent के व्यवहार को दोहराने के बजाय पुनः-उपयोग और विस्तार करने देता है — पुनः-उपयोग की मूल OOP सोच।

## super() पहले आना चाहिए

किसी subclass constructor में, `this` उपयोग करने से पहले `super(...)` बुलाएँ — JS इस नियम को सख़्ती से लागू करता है।
