JavaScripti klassi pärand

Selles õpetuses saate näidete abil õppida JavaScripti klassi pärimist.

Klassipärand

Pärand võimaldab teil määratleda klassi, mis võtab kogu funktsionaalsuse vanemklassist ja võimaldab teil lisada rohkem.

Klassi pärimise abil saab klass pärida kõik teise klassi meetodid ja omadused.

Pärimine on kasulik funktsioon, mis võimaldab koodi uuesti kasutada.

Klassi pärimise kasutamiseks kasutate extendsmärksõna. Näiteks,

 // 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();

Väljund

 Tere Jack

Ülaltoodud näites Studentpärib klass kõiki klassi meetodeid ja omadusi Person. Seega on Studentklassil nüüd nameomadus ja greet()meetod.

Seejärel pääsesime klassi greet()meetodi juurde Student, luues student1objekti.

JavaScripti super () märksõna

superMärksõna kasutatakse sees lapse klassi tähistab oma vanema klassi. Näiteks,

 // 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();

Siin supersees Studenttasemega viitab Persontasemega. Seega, kui Studentklassi konstruktorit kutsutakse, kutsub see ka Personklassi konstruktorit, kes määrab talle nime omaduse.

Ülimuslik meetod või omadus

Kui lasteklassil on sama meetod või atribuudinimi kui vanematel, kasutab see lasteklasside meetodit ja omadust. Seda mõistet nimetatakse meetodi ülimuslikuks. Näiteks,

 // 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();

Väljund

Tere, õpilane Jack. amet: Üliõpilane

Siin on occupationomadus ja greet()meetod olemas vanemateklassis Personja Studentlasteklassis. Seega Studentalistab klass occupationatribuudi ja greet()meetodi.

Pärandi kasutusalad

  • Kuna lapseklass võib pärida kõik vanema klassi funktsioonid, võimaldab see koodi taaskasutamist.
  • Kui funktsionaalsus on välja töötatud, saate selle lihtsalt pärida. Pole vaja ratast uuesti leiutada. See võimaldab puhtamat koodi ja seda on lihtsam hooldada.
  • Kuna lapseklassis saate lisada ka oma funktsionaalsusi, saate pärida ainult kasulikud funktsioonid ja määratleda muud vajalikud funktsioonid.

Huvitavad Artiklid...