जावास्क्रिप्ट में ओओपी में पैरेंट मेथड्स को ओवरराइड करना
एक चाइल्ड क्लास एक पैरेंट के मेथड को उसी नाम का मेथड बनाकर ओवरराइड कर सकती है। आइए एक उदाहरण देखें। मान लीजिए कि हमारे पास निम्नलिखित पैरेंट क्लास है:
javascriptclass User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
आइए चाइल्ड क्लास में उसी नाम का एक मेथड बनाएं:
javascriptclass Student extends User {
setName(name) {
}
}
आमतौर पर, पैरेंट मेथड्स को ओवरराइड करने की आवश्यकता तब होती है जब उस मेथड के व्यवहार को बदलना या उसमें जोड़ना होता है। आइए हमारे मामले में नाम की लंबाई की जांच जोड़ें:
javascriptclass Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
आइए सुनिश्चित करें कि वास्तव में ओवरराइड किया गया मेथड ही कॉल हो रहा है। सबसे पहले, चाइल्ड क्लास की एक ऑब्जेक्ट बनाएं:
javascriptlet student = new Student;
अब हमारा मेथड कॉल करें, इसमें एक वैध मान पास करके:
javascriptstudent.setName('john');
और अब मेथड को कॉल करें, इसमें एक अवैध मान पास करके। परिणामस्वरूप, हम कंसोल में एक थ्रो की गई त्रुटि देखेंगे:
javascriptstudent.setName(''); // त्रुटि
User क्लास में
उम्र के लिए गेटर और सेटर बनाएं।
Employee क्लास में
उम्र के सेटर को ओवरराइड करें और इसमें
यह जांच बनाएं कि उम्र
18 से 65 वर्ष के बीच है।