Наследяване на 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ключова дума се използва в рамките на клас дете означава неговата майка клас. Например,

 // 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класа, който му присвоява свойство за име.

Отменящ метод или свойство

Ако подчинен клас има същия метод или име на свойство като този на родителския клас, той ще използва метода и свойството на подчинения клас. Тази концепция се нарича метод замяна. Например,

 // 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()метода.

Употреба на наследство

  • Тъй като детски клас може да наследи всички функционалности на родителския клас, това позволява повторна употреба на кода.
  • След като една функционалност е разработена, можете просто да я наследите. Няма нужда да преоткривате колелото. Това позволява по-чист код и по-лесно поддържане.
  • Тъй като можете също да добавяте свои собствени функционалности в детския клас, можете да наследявате само полезните функционалности и да дефинирате други необходими функции.

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