პრივატული თვისებები მემკვიდრეობითობისას OOP-ში JavaScript-ში

პრივატული თვისებები არ გადაეცემა მემკვიდრეობით. მაგრამ შთამომავალს შეუძლია მათზე ზემოქმედება მშობლის საჯარო მეთოდების მეშვეობით. პრაქტიკაში ვნახოთ. მოდით, გვაქვს შემდეგი მშობელი კლასი პრივატული თვისებით და მისი გეთერით და სეთერით:

javascriptclass User {
  #name;
  
  setName(name) {
    this.#name = name;
  }
  getName() {
    return this.#name;
  }
}

მოდით, მშობლისგან მემკვიდრეობით მიიღებს შემდეგი შთამომავალი:

javascriptclass Student extends User {
  
}

შევქმნათ შთამომავლის ობიექტი:

javascriptlet student = new Student;

გამოვიყენოთ მშობლის მეთოდი, რათა ჩავწეროთ მისი პრივატული თვისება:

javascriptstudent.setName('john');

გამოვიყენოთ მშობლის მეთოდი, რათა წავიკითხოთ მისი პრივატული თვისება:

javascriptlet name = student.getName();
console.log(name);
Задание 1

მოცემულია შემდეგი მშობელი კლასი:

javascriptclass User {
  #name;
  #surn;
  
  setName(name) {
    this.#name = name;
  }
  getName() {
    return this.#name;
  }
  
  setSurn(surn) {
    this.#surn = surn;
  }
  getSurn() {
    return this.#surn;
  }
}

გააკეთეთ კლასი Employee, რომელიც მემკვიდრეობით მიიღებს ამ მშობლისგან.

Задание 2

შექმენით Employee კლასის ობიექტი და გამოიძახეთ მემკვიდრეობით მიღებული სეთერები და გეთერები.

Задание 3

Employee კლასში გააკეთეთ შემდეგი მეთოდი:

javascriptgetFull() {
  return this.#name + ' ' + this.#surn;
}

დარწმუნდით, რომ მეთოდის კოდი გამოიწვევს შეცდომას.