জাভাস্ক্রিপ্টে OOP-এ ওভাররাইড করা মেথড কল করা
ওভাররাইড করার সময়, চাইল্ড ক্লাস
প্যারেন্টের ওভাররাইড করা মেথডে
অ্যাক্সেস হারায়। যাইহোক, এটি এখনও
অ্যাক্সেস করা সম্ভব। এটি করা হয়
super কিওয়ার্ড ব্যবহার করে,
যা প্যারেন্ট ক্লাসকে নির্দেশ করে।
আসুন একটি উদাহরণ দেখি, যখন আমাদের প্যারেন্ট মেথডে অ্যাক্সেসের প্রয়োজন হতে পারে। ধরুন আমাদের নিম্নলিখিত প্যারেন্ট ক্লাস আছে:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
ধরুন আমরা চাইল্ড ক্লাসে প্যারেন্টের মেথডটি ওভাররাইড করেছি:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
লক্ষ্য করা যায়, ওভাররাইড করা মেথডে শর্ত পূরণ হলে কার্যত প্যারেন্ট মেথডের কোড এক্সিকিউট হয়। এর ফলে কোডের不必要的 নকল তৈরি হয়।
প্যারেন্টের মেথড কল করে এটি থেকে মুক্তি পাওয়া সম্ভব। আসুন এটি করি:
class Student extends User {
setName(name) {
if (name.length > 0) {
super.setName(name); // প্যারেন্টের মেথড
} else {
throw new Error('student name error');
}
}
}
নিম্নলিখিত কোডটি দেওয়া আছে:
class 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 ক্লাসে,
বয়সের সেটারটি সংশোধন করুন
ও সরল করুন, মূল প্যারেন্ট মেথড ব্যবহার করে।