इस ट्यूटोरियल में, आप उदाहरणों की सहायता से जावास्क्रिप्ट वर्ग वंशानुक्रम के बारे में जानेंगे।
कक्षा में प्रवेश
वंशानुक्रम आपको एक वर्ग को परिभाषित करने में सक्षम बनाता है जो मूल कक्षा से सभी कार्यक्षमता लेता है और आपको अधिक जोड़ने की अनुमति देता है।
क्लास इनहेरिटेंस का उपयोग करके, एक क्लास दूसरे क्लास के सभी तरीकों और गुणों को विरासत में दे सकती है।
वंशानुक्रम एक उपयोगी विशेषता है जो कोड पुन: प्रयोज्य की अनुमति देता है।
क्लास इनहेरिटेंस का उपयोग करने के लिए, आप extends
कीवर्ड का उपयोग करते हैं । उदाहरण के लिए,
// 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();
आउटपुट
नमस्ते जैक
उपरोक्त उदाहरण में, Student
वर्ग वर्ग के सभी तरीकों और गुणों को विरासत में देता है Person
। इसलिए, Student
वर्ग के पास अब name
संपत्ति और greet()
विधि होगी।
फिर, हमने ऑब्जेक्ट बनाकर क्लास के greet()
तरीके को एक्सेस किया ।Student
student1
जावास्क्रिप्ट सुपर () कीवर्ड
super
चाइल्ड क्लास के अंदर उपयोग किया जाने वाला कीवर्ड अपने मूल वर्ग को दर्शाता है। उदाहरण के लिए,
// 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();
यहां, वर्ग के super
अंदर Student
वर्ग को संदर्भित करता है Person
। इसलिए, जब Student
क्लास के कंस्ट्रक्टर को बुलाया जाता है, तो वह क्लास के कंस्ट्रक्टर को भी कॉल Person
करता है, जो उसे एक प्रॉपर्टी देता है।
ओवरराइडिंग मेथड या प्रॉपर्टी
यदि किसी चाइल्ड क्लास के पास अभिभावक वर्ग के समान विधि या संपत्ति का नाम है, तो वह चाइल्ड क्लास की विधि और संपत्ति का उपयोग करेगा। इस अवधारणा को विधि अधिभावी कहा जाता है। उदाहरण के लिए,
// 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();
आउटपुट
हैलो छात्र जैक। व्यवसाय: छात्र
यहां, occupation
संपत्ति और greet()
विधि पैरेंट Person
क्लास और चाइल्ड Student
क्लास में मौजूद है। इसलिए, Student
वर्ग occupation
संपत्ति और greet()
विधि से आगे निकल जाता है।
इनहेरिटेंस का उपयोग
- चूंकि एक बच्चा वर्ग माता-पिता की कक्षा की सभी कार्यात्मकताओं को विरासत में दे सकता है, इसलिए यह कोड पुन: प्रयोज्य की अनुमति देता है।
- एक बार एक कार्यक्षमता विकसित होने के बाद, आप बस इसे विरासत में ले सकते हैं। पहिया को सुदृढ़ करने की आवश्यकता नहीं है। यह क्लीनर कोड और बनाए रखने में आसान के लिए अनुमति देता है।
- चूंकि आप बच्चे की कक्षा में अपनी खुद की कार्यक्षमता भी जोड़ सकते हैं, आप केवल उपयोगी कार्यात्मकताएं प्राप्त कर सकते हैं और अन्य आवश्यक सुविधाओं को परिभाषित कर सकते हैं।