जावास्क्रिप्ट में ओओपी में इनहेरिटेंस के दौरान प्राइवेट मेथड्स
प्राइवेट मेथड्स इनहेरिट नहीं होते हैं। यह जानबूझकर किया गया है ताकि एनकैप्सुलेशन को न तोड़ा जाए। आइए एक उदाहरण से देखते हैं। मान लीजिए कि हमारे पास एक प्राइवेट मेथड वाला निम्नलिखित पैरेंट क्लास है:
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;
}
}
मान लीजिए चाइल्ड क्लास पैरेंट के प्राइवेट मेथड का उपयोग करना चाहता है। जावास्क्रिप्ट इसे अनुमति नहीं देगा और एक एरर देगा:
class Student extends User {
setSurn(surn) {
this.surn = surn;
}
getSurn() {
return this.#capeFirst(this.surn); // एरर आएगा
}
}
Employee क्लास में पैरेंट के प्राइवेट मेथड
का उपयोग करने का प्रयास करें।