TypeScript-এ protected মডিফায়ার

প্রাইভেট প্রোপার্টি এবং মেথড উত্তরাধিকার সূত্রে প্রাপ্ত হয় না বংশধরদের দ্বারা। তবে, কখনও কখনও আমাদের প্রয়োজন হয় যে একটি প্রোপার্টি বা মেথড বাহ্যিকভাবে অ্যাক্সেসযোগ্য না হয়, কিন্তু বংশধরদের দ্বারা উত্তরাধিকার সূত্রে প্রাপ্ত হয়। এই ক্ষেত্রে protected মডিফায়ার ব্যবহার করা উচিত।

আসুন অনুশীলনে চেষ্টা করি। আমাদের User ক্লাসে cape মেথডটিকে protected মডিফায়ার ব্যবহার করে সুরক্ষিত হিসাবে ঘোষণা করি:

typescriptclass User {
  protected cape(str: string) {
    return str[0].toUpperCase() + str.slice(1);
  }
}

আসুন User ক্লাস থেকে উত্তরাধিকারসূত্রে প্রাপ্ত Student ক্লাস তৈরি করি:

typescriptclass Student extends User {
  private name: string;
  
  constructor(name: string) {
    super();
    this.name = name;
  }
}

নাম প্রদর্শনকারী একটি মেথড যোগ করি:

typescriptclass Student extends User {
  private name: string;
  
  constructor(name: string) {
    super();
    this.name = name;
  }
  
  public showName(): string {
    return this.name;
  }
}

এবং এখন বংশধরের মেথডের ভিতরে প্যারেন্টের সুরক্ষিত মেথডটি ব্যবহার করি:

typescriptclass Student extends User {
  private name: string;
  
  constructor(name: string) {
    super();
    this.name = name;
  }
  
  public showName(): string {
    return this.cape(this.name); // প্যারেন্টের মেথড ব্যবহার করছি
  }
}

আমাদের ক্লাসের একটি অবজেক্ট তৈরি করি:

typescriptlet student: Student = new Student('john');

ছাত্রটি আউটপুট করার জন্য মেথডটি ব্যবহার করি:

typescriptconsole.log(student.showName());

কিন্তু cape মেথডটিকে ক্লাসের বাইরে থেকে কল করার চেষ্টা একটি ত্রুটির দিকে নিয়ে যাবে:

typescriptconsole.log(student.cape('test')); // ত্রুটি
Задание 1

নিম্নলিখিত ক্লাসটি দেওয়া হয়েছে:

typescriptclass User {
  protected name: string;
  protected surn: string;
  
  constructor(name: string, surn: string) {
    this.name = name;
    this.surn = surn;
  }
}

এই ক্লাস থেকে Employee নামে একটি ক্লাস উত্তরাধিকার করুন, যা একটি সুরক্ষিত প্রোপার্টি salary যোগ করবে, পাশাপাশি সমস্ত প্রোপার্টির গেটার যোগ করবে, নিজের এবং উত্তরাধিকার সূত্রে প্রাপ্ত উভয়ই।