В този урок ще научите за наследяването на клас 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()
метода.
Употреба на наследство
- Тъй като детски клас може да наследи всички функционалности на родителския клас, това позволява повторна употреба на кода.
- След като една функционалност е разработена, можете просто да я наследите. Няма нужда да преоткривате колелото. Това позволява по-чист код и по-лесно поддържане.
- Тъй като можете също да добавяте свои собствени функционалности в детския клас, можете да наследявате само полезните функционалности и да дефинирате други необходими функции.