Մասնավոր մեթոդներ ժառանգման ժամանակ OOP-ում JavaScript-ում
Մասնավոր մեթոդները չեն ժառանգվում: Դա արված է հատուկ, որպեսզի չխախտվի ինկապսուլյացիան: Եկեք նայենք օրինակով: Ենթադրենք, մենք ունենք հետևյալ ծնողական դասը մասնավոր մեթոդով.
class User {
setName(name) {
this.name = name;
}
getName() {
return this.#capeFirst(this.name);
}
#capeFirst(str) {
return str[0].toUpperCase() + str.slice(1);
}
}
Ենթադրենք, ծնողական դասից ժառանգում է հետևյալ դասը.
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.surn;
}
}
Ենթադրենք, սերունդը ցանկանում է օգտագործել ծնողի մասնավոր մեթոդը: JavaScript-ը դա չի թույլատրի և կտա սխալ.
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // կլինի սխալ
}
}
Փորձեք Employee դասում
օգտագործել ծնողի մասնավոր մեթոդը: