У овом упутству ћете научити о наслеђивању класе ЈаваСцрипт помоћу примера.
Наслеђивање класе
Наслеђивање вам омогућава да дефинишете класу која узима све функције родитељске класе и омогућава вам да додате још.
Користећи наслеђивање класе, класа може наследити све методе и својства друге класе.
Наслеђивање је корисна функција која омогућава поновну употребу кода.
Да бисте користили наслеђивање класе, користите 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
објекат.
ЈаваСцрипт супер () кључна реч
Кључна 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()
метод.
Употреба наследства
- Будући да подређена класа може да наследи све функционалности родитељске класе, ово омогућава поновну употребу кода.
- Једном када се функционалност развије, можете је једноставно наследити. Нема потребе да поново откривате точак. Ово омогућава чишћи код и лакши за одржавање.
- Будући да можете додати и своје функције у класу подређених, можете наследити само корисне функционалности и дефинисати друге потребне особине.