JavaScript Sınıf Kalıtımı

Bu eğiticide, örnekler yardımıyla JavaScript sınıf mirası hakkında bilgi edineceksiniz.

Sınıf Mirası

Devralma, bir üst sınıftan tüm işlevleri alan ve daha fazlasını eklemenize izin veren bir sınıf tanımlamanıza olanak tanır.

Sınıf mirasını kullanarak, bir sınıf başka bir sınıfın tüm yöntemlerini ve özelliklerini miras alabilir.

Kalıtım, kodun yeniden kullanılabilirliğine izin veren kullanışlı bir özelliktir.

Sınıf mirasını kullanmak için extendsanahtar kelimeyi kullanırsınız . Örneğin,

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

Çıktı

 Merhaba Jack

Yukarıdaki örnekte, Studentsınıf , sınıfın tüm yöntemlerini ve özelliklerini miras alır Person. Dolayısıyla, Studentsınıf artık özelliğe nameve greet()yönteme sahip olacaktır .

Daha sonra bir nesne oluşturarak sınıfın greet()yöntemine eriştik.Studentstudent1

JavaScript süper () anahtar sözcüğü

superBir çocuk sınıf içinde kullanılan anahtar kelime kendi üst sınıfını belirtir. Örneğin,

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

Burada superStudentsınıf , sınıfı ifade eder Person. Dolayısıyla, Studentsınıfın yapıcısı çağrıldığında, ona Personbir name özelliği atayan sınıfın yapıcısını da çağırır .

Geçersiz Kılma Yöntem veya Özellik

Bir alt sınıf, üst sınıfın yöntemiyle aynı yöntem veya özellik adına sahipse, alt sınıfın yöntemini ve özelliğini kullanır. Bu kavrama yöntemi geçersiz kılma denir. Örneğin,

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

Çıktı

Merhaba öğrenci Jack. meslek: Öğrenci

Burada, occupationözellik ve greet()yöntem ebeveyn Personsınıfta ve alt Studentsınıfta mevcuttur. Bu nedenle, Studentsınıf occupationözelliği ve greet()yöntemi geçersiz kılar .

Kalıtımın Kullanım Alanları

  • Bir alt sınıf, ebeveynin sınıfının tüm işlevlerini devralabildiğinden, bu, kodun yeniden kullanılabilirliğine izin verir.
  • Bir işlevsellik geliştirildikten sonra, onu kolayca devralabilirsiniz. Tekerleği yeniden icat etmeye gerek yok. Bu, daha temiz kod sağlar ve bakımı daha kolaydır.
  • Alt sınıfta kendi işlevlerinizi de ekleyebileceğiniz için, yalnızca yararlı işlevleri devralabilir ve diğer gerekli özellikleri tanımlayabilirsiniz.

Ilginç makaleler...