wiki/content/20201008090613-inheritance.md

39 lines
964 B
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
date: 2020-10-08
id: 3b88db70-6291-45e3-96da-3fb70a43222a
title: JavaScript Class Inheritance
---
# Example
Classes in JavaScript can inherit from each other
``` javascript
class Parent {
constructor(name, parentChild = "Parent") {
this.parentChild = parentChild
this.name = name
}
speak(line) {
console.log(`${this.parentChild} ${this.name} says '${line}'`)
}
}
class Child extends Parent {
constructor(name){
super(name, "Child")
}
}
let parent = new Parent("Father");
let child = new Child("Gregory");
parent.speak("Get off my lawn!");
child.speak("Make me old man!");
```
The use of the word `extends` indicates that this class shouldnt be
directly based on the default [Object](20200826201605-objects) prototype
but on some other class. This is called the superclass. The derived
class is the subclass. The superclass's constructor and methods can be
called by appending `super` in front.