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:
javascriptclass User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
Alt sınıfta ebeveynin metodunu geçersiz kıldığımızı varsayalım:
javascriptclass 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:
javascriptclass 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:
javascriptclass 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.