U ovom ćete tutorijalu uz primjere naučiti o nasljeđivanju klase JavaScript.
Razredno nasljeđivanje
Nasljeđivanje omogućuje vam definiranje klase koja uzima sve funkcije roditeljske klase i omogućuje vam dodavanje više.
Koristeći nasljeđivanje klase, klasa može naslijediti sve metode i svojstva druge klase.
Nasljeđivanje je korisna značajka koja omogućuje ponovnu upotrebu koda.
Da biste koristili nasljeđivanje klase, koristite extends
ključnu riječ. Na primjer,
// 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();
Izlaz
Pozdrav Jack
U gornjem primjeru Student
klasa nasljeđuje sve metode i svojstva Person
klase. Stoga će Student
klasa sada imati name
svojstvo i greet()
metodu.
Zatim smo pristupili greet()
metodi Student
klase stvarajući student1
objekt.
JavaScript super () ključna riječ
super
Ključna riječ koristi u razredu dijete označava njegov roditelj klasa. Na primjer,
// 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();
Ovdje se super
unutarnji Student
razred odnosi na Person
razred. Stoga, kada Student
se pozove konstruktor klase, on također poziva konstruktor Person
klase koji mu dodjeljuje svojstvo imena.
Nadjačavanje metode ili svojstva
Ako podređena klasa ima istu metodu ili ime svojstva kao i roditeljska klasa, ona će koristiti metodu i svojstvo podređene klase. Ovaj koncept naziva se nadjačavanje metode. Na primjer,
// 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();
Izlaz
Pozdrav student Jack. zanimanje: Student
Ovdje su occupation
svojstvo i greet()
metoda prisutni u roditeljskoj Person
klasi i podređenoj Student
klasi. Dakle, Student
klasa nadjačava occupation
svojstvo i greet()
metodu.
Uporaba nasljeđivanja
- Budući da podređena klasa može naslijediti sve funkcionalnosti roditeljske klase, to omogućuje ponovnu upotrebu koda.
- Jednom kada se funkcionalnost razvije, možete je jednostavno naslijediti. Nije potrebno iznova otkrivati kotač. To omogućuje čišći kod i lakše ga je održavati.
- Budući da također možete dodati vlastite funkcionalnosti u podređenu klasu, možete naslijediti samo korisne funkcionalnosti i definirati ostale potrebne značajke.