Наследование классов JavaScript

В этом руководстве вы узнаете о наследовании классов 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()метод.

Использование наследования

  • Поскольку дочерний класс может наследовать все функции родительского класса, это позволяет повторно использовать код.
  • Как только функциональность разработана, вы можете просто унаследовать ее. Не нужно изобретать велосипед. Это позволяет сделать код более чистым и проще в обслуживании.
  • Поскольку вы также можете добавлять свои собственные функции в дочерний класс, вы можете наследовать только полезные функции и определять другие необходимые функции.

Интересные статьи...