Наследование работает через ключевое слово extends.
class Task {}
class SubTask extends Task {}
Если подкласс не имеет своего конструктора - то он использует конструктор родителя.
class Task {
constructor(){
console.log('Task - constructor');
}
}
class SubTask extends Task {}
let task = new Task();
let subtask = new SubTask();
// Task - constructor
// Task - constructor
Если у подкласса есть конструктор то он должен вызвать конструктор родительского класса. Для этого используется ключевое слово super(). Аналогочно и наоборот - если указывается констроктор для подкласса - то нужно указывать и конструктор для родителя.
class Task {
constructor(){
console.log('Task - constructor');
}
}
class SubTask extends Task {
constructor(){
super();
console.log('SubTask - constructor');
}
}
let task = new Task();
let subtask = new SubTask();
// Task - constructor
// Task - constructor
// SubTask - constructor
В унаследованном классе можно вызвать метод родительского класса а потом дополнить его. Для этого используется ключевое слово super. и имя родительского метода.
В классе потомке также наследуются гетеры/сеттеры и статические методы и свойства.