TypeScript-এ protected মডিফায়ার
প্রাইভেট প্রোপার্টি এবং মেথড উত্তরাধিকার সূত্রে প্রাপ্ত হয় না
বংশধরদের দ্বারা। তবে, কখনও কখনও আমাদের প্রয়োজন হয় যে
একটি প্রোপার্টি বা মেথড বাহ্যিকভাবে অ্যাক্সেসযোগ্য না হয়,
কিন্তু বংশধরদের দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত হয়। এই ক্ষেত্রে
protected মডিফায়ার ব্যবহার করা উচিত।
আসুন অনুশীলনে চেষ্টা করি। আমাদের User ক্লাসে
cape মেথডটিকে protected মডিফায়ার ব্যবহার করে
সুরক্ষিত হিসাবে ঘোষণা করি:
class User {
protected cape(str: string) {
return str[0].toUpperCase() + str.slice(1);
}
}
আসুন User ক্লাস থেকে উত্তরাধিকারসূত্রে প্রাপ্ত
Student ক্লাস তৈরি করি:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
}
নাম প্রদর্শনকারী একটি মেথড যোগ করি:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.name;
}
}
এবং এখন বংশধরের মেথডের ভিতরে প্যারেন্টের সুরক্ষিত মেথডটি ব্যবহার করি:
class Student extends User {
private name: string;
constructor(name: string) {
super();
this.name = name;
}
public showName(): string {
return this.cape(this.name); // প্যারেন্টের মেথড ব্যবহার করছি
}
}
আমাদের ক্লাসের একটি অবজেক্ট তৈরি করি:
let student: Student = new Student('john');
ছাত্রটি আউটপুট করার জন্য মেথডটি ব্যবহার করি:
console.log(student.showName());
কিন্তু cape মেথডটিকে ক্লাসের বাইরে থেকে কল করার
চেষ্টা একটি ত্রুটির দিকে নিয়ে যাবে:
console.log(student.cape('test')); // ত্রুটি
নিম্নলিখিত ক্লাসটি দেওয়া হয়েছে:
class User {
protected name: string;
protected surn: string;
constructor(name: string, surn: string) {
this.name = name;
this.surn = surn;
}
}
এই ক্লাস থেকে Employee নামে একটি ক্লাস উত্তরাধিকার করুন,
যা একটি সুরক্ষিত প্রোপার্টি salary যোগ করবে,
পাশাপাশি সমস্ত প্রোপার্টির গেটার যোগ করবে, নিজের এবং
উত্তরাধিকার সূত্রে প্রাপ্ত উভয়ই।