JavaScript'te OOP'de Geçersiz Kılınan Metotların Çağrılması
Geçersiz kılma işleminde, alt sınıf üst sınıfta geçersiz kılınan metoda
erişimi kaybeder. Ancak, yine de ona erişmek mümkündür. Bu,
ebeveyn sınıfı ifade eden super anahtar kelimesi
kullanılarak yapılır.
Bir örnek üzerinden, ebeveyn metoda erişime ne zaman ihtiyaç duyabileceğimizi görelim. Aşağıdaki üst sınıfa sahip olduğumuzu varsayalım:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Alt sınıfta ebeveynin metodunu geçersiz kıldığımızı varsayalım:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
Geçersiz kılınan metotta, koşul sağlandığında aslında ebeveyn metodunun kodunun çalıştığı görülebilir. Bu, gereksiz kod tekrarına yol açar.
Ebeveyn metodunu çağırarak bundan kurtulabiliriz. Bunu yapalım:
class Student extends User {
setName(name) {
if (name.length > 0) {
super.setName(name); // ebeveyn metodu
} else {
throw new Error('student name error');
}
}
}
Aşağıdaki kod verilmiştir:
class User {
setAge(age) {
if (age >= 0) {
this.age = age;
} else {
throw new Error('need age more 0');
}
}
}
class Employee {
setAge(age) {
if (age <= 120) {
if (age >= 0) {
this.age = age;
} else {
throw new Error('need age more 0');
}
} else {
throw new Error('need age less 120');
}
}
}
Employee sınıfında, orijinal ebeveyn metodunu kullanarak
yaş belirleme metodunu basitleştirin.