mirror of
https://github.com/alrayyes/wiki.git
synced 2024-11-22 19:46:23 +00:00
39 lines
947 B
Markdown
39 lines
947 B
Markdown
|
---
|
|||
|
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 shouldn’t 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.
|