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 extends
anahtar 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, Student
sınıf , sınıfın tüm yöntemlerini ve özelliklerini miras alır Person
. Dolayısıyla, Student
sınıf artık özelliğe name
ve greet()
yönteme sahip olacaktır .
Daha sonra bir nesne oluşturarak sınıfın greet()
yöntemine eriştik.Student
student1
JavaScript süper () anahtar sözcüğü
super
Bir ç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 super
iç Student
sınıf , sınıfı ifade eder Person
. Dolayısıyla, Student
sınıfın yapıcısı çağrıldığında, ona Person
bir 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 Person
sınıfta ve alt Student
sınıfta mevcuttur. Bu nedenle, Student
sı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.