მშობელი კლასის მეთოდების გადაფარვა OOP-ში JavaScript-ში

შვილობილ კლასს შეუძლია გადაფაროს მშობლის მეთოდი, იმავე სახელის მქონე მეთოდის შექმნით. მოდით შევხედოთ მაგალითს. დავუშვათ, გვაქვს შემდეგი მშობელი კლასი:

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

მოდით შვილობილ კლასში შევქმნათ იმავე სახელის მეთოდი:

javascriptclass Student extends User {
  setName(name) {
    
  }
}

როგორც წესი, მშობელი მეთოდების გადაფარვა სჭირდება იმისთვის, რომ შეიცვალოს ან შეივსოს ამ მეთოდის ქცევა. მოდით ჩვენს შემთხვევაში დავამატოთ სახელის სიგრძის შემოწმება:

javascriptclass Student extends User {
  setName(name) {
    if (name.length > 0) {
      this.name = name;
    } else {
      throw new Error('student name error');
    }
  }
}

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

javascriptlet student = new Student;

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

javascriptstudent.setName('john');

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

javascriptstudent.setName(''); // შეცდომა
Задание 1

კლასში User გააკეთეთ ასაკის გეთერი და სეთერი.

Задание 2

კლასში Employee გადაფარეთ ასაკის სეთერი და გააკეთეთ მასში შემოწმება, რომ ასაკი იყოს 18-დან 65 წლამდე.