Ebben az oktatóanyagban példák segítségével megismerheti a JavaScript osztály öröklődését.
Osztály öröklődés
Az öröklés lehetővé teszi egy olyan osztály definiálását, amely az összes funkciót elveszi a szülő osztálytól, és további felvételeket tesz lehetővé.
Az osztályöröklés használatával egy osztály örökölheti egy másik osztály összes módszerét és tulajdonságát.
Az öröklés hasznos funkció, amely lehetővé teszi a kód újrafelhasználhatóságát.
Az osztályöröklés használatához használja a extends
kulcsszót. Például,
// 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();
Kimenet
Hello Jack
A fenti példában az Student
osztály örökli az osztály összes módszerét és tulajdonságát Person
. Ezért az Student
osztálynak megvan a name
tulajdonsága és a greet()
metódusa.
Ezután egy objektum létrehozásával értük el az osztály greet()
módszerét .Student
student1
JavaScript super () kulcsszó
A super
gyermekosztályon belül használt kulcsszó a szülő osztályát jelöli. Például,
// 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();
Itt a super
belső Student
osztály az osztályra utal Person
. Ezért, amikor az Student
osztály konstruktorát meghívják, akkor az osztály konstruktorát is meghívja, Person
amely név tulajdonságot rendel hozzá.
Felülbíráló módszer vagy tulajdonság
Ha egy gyermek osztálynak ugyanaz a módszere vagy tulajdonságneve, mint a szülő osztálynak, akkor a gyermek osztály módszerét és tulajdonságát használja. Ezt a fogalmat nevezzük módszer felülírásának. Például,
// 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();
Kimenet
Hello Jack hallgató. foglalkozás: Diák
Itt a occupation
tulajdonság és a greet()
módszer jelen van a szülő Person
osztályban és a gyermek Student
osztályban. Ezért az Student
osztály felülírja a occupation
tulajdonságot és a greet()
módszert.
Az öröklés felhasználása
- Mivel egy gyermekosztály örökölheti a szülő osztály összes funkcióját, ez lehetővé teszi a kód újrafelhasználhatóságát.
- A funkcionalitás fejlesztése után egyszerűen örökölheti. Nem kell újból feltalálni a kereket. Ez tisztább kódot tesz lehetővé és könnyebben karbantartható.
- Mivel a gyermekosztályba saját funkciókat is felvehet, csak a hasznos funkciókat örökölheti és meghatározhat más szükséges funkciókat.