В этом руководстве вы узнаете о наследовании классов JavaScript с помощью примеров.
Наследование класса
Наследование позволяет вам определить класс, который берет все функциональные возможности от родительского класса и позволяет вам добавлять больше.
Используя наследование классов, класс может наследовать все методы и свойства другого класса.
Наследование - это полезная функция, позволяющая повторно использовать код.
Чтобы использовать наследование классов, вы используете extendsключевое слово. Например,
// parent class class Person ( constructor(name) ( this.name = name; ) greet() ( console.log(`Hello $(this.name)`); ) ) // inheriting parent class class Student extends Person ( ) let student1 = new Student('Jack'); student1.greet();
Вывод
Привет Джек
В приведенном выше примере Studentкласс наследует все методы и свойства Personкласса. Следовательно, Studentкласс теперь будет иметь nameсвойство и greet()метод.
Затем мы получили доступ к greet()методу Studentкласса, создав student1объект.
Ключевое слово JavaScript super ()
superКлючевое слово , используемое внутри дочернего класса обозначает его родительский класс. Например,
// parent class class Person ( constructor(name) ( this.name = name; ) greet() ( console.log(`Hello $(this.name)`); ) ) // inheriting parent class class Student extends Person ( constructor(name) ( console.log("Creating student class"); // call the super class constructor and pass in the name parameter super(name); ) ) let student1 = new Student('Jack'); student1.greet();
Здесь superвнутренний Studentкласс относится к Personклассу. Следовательно, когда Studentвызывается конструктор класса, он также вызывает конструктор Personкласса, который назначает ему свойство name.
Переопределение метода или свойства
Если дочерний класс имеет то же имя метода или свойства, что и родительский класс, он будет использовать метод и свойство дочернего класса. Эта концепция называется переопределением метода. Например,
// parent class class Person ( constructor(name) ( this.name = name; this.occupation = "unemployed"; ) greet() ( console.log(`Hello $(this.name).`); ) ) // inheriting parent class class Student extends Person ( constructor(name) ( // call the super class constructor and pass in the name parameter super(name); // Overriding an occupation property this.occupation = 'Student'; ) // overriding Person's method greet() ( console.log(`Hello student $(this.name).`); console.log('occupation: ' + this.occupation); ) ) let p = new Student('Jack'); p.greet();
Вывод
Привет, студент Джек. род занятий: Студент
Здесь occupationсвойство и greet()метод присутствуют в родительском Personи дочернем Studentклассах. Следовательно, Studentкласс переопределяет occupationсвойство и greet()метод.
Использование наследования
- Поскольку дочерний класс может наследовать все функции родительского класса, это позволяет повторно использовать код.
- Как только функциональность разработана, вы можете просто унаследовать ее. Не нужно изобретать велосипед. Это позволяет сделать код более чистым и проще в обслуживании.
- Поскольку вы также можете добавлять свои собственные функции в дочерний класс, вы можете наследовать только полезные функции и определять другие необходимые функции.








