პრივატული თვისებები მემკვიდრეობითობისას OOP-ში JavaScript-ში
პრივატული თვისებები არ გადაეცემა მემკვიდრეობით. მაგრამ შთამომავალს შეუძლია მათზე ზემოქმედება მშობლის საჯარო მეთოდების მეშვეობით. პრაქტიკაში ვნახოთ. მოდით, გვაქვს შემდეგი მშობელი კლასი პრივატული თვისებით და მისი გეთერით და სეთერით:
class User {
#name;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
}
მოდით, მშობლისგან მემკვიდრეობით მიიღებს შემდეგი შთამომავალი:
class Student extends User {
}
შევქმნათ შთამომავლის ობიექტი:
let student = new Student;
გამოვიყენოთ მშობლის მეთოდი, რათა ჩავწეროთ მისი პრივატული თვისება:
student.setName('john');
გამოვიყენოთ მშობლის მეთოდი, რათა წავიკითხოთ მისი პრივატული თვისება:
let name = student.getName();
console.log(name);
მოცემულია შემდეგი მშობელი კლასი:
class User {
#name;
#surn;
setName(name) {
this.#name = name;
}
getName() {
return this.#name;
}
setSurn(surn) {
this.#surn = surn;
}
getSurn() {
return this.#surn;
}
}
გააკეთეთ კლასი Employee,
რომელიც მემკვიდრეობით მიიღებს
ამ მშობლისგან.
შექმენით Employee კლასის ობიექტი
და გამოიძახეთ მემკვიდრეობით მიღებული
სეთერები და გეთერები.
Employee კლასში გააკეთეთ
შემდეგი მეთოდი:
getFull() {
return this.#name + ' ' + this.#surn;
}
დარწმუნდით, რომ მეთოდის კოდი გამოიწვევს შეცდომას.