მშობელი კლასის მეთოდების გადაფარვა OOP-ში JavaScript-ში
შვილობილ კლასს შეუძლია გადაფაროს მშობლის მეთოდი, იმავე სახელის მქონე მეთოდის შექმნით. მოდით შევხედოთ მაგალითს. დავუშვათ, გვაქვს შემდეგი მშობელი კლასი:
class User {
setName(name) {
this.name = name;
}
getName() {
return this.name;
}
}
მოდით შვილობილ კლასში შევქმნათ იმავე სახელის მეთოდი:
class Student extends User {
setName(name) {
}
}
როგორც წესი, მშობელი მეთოდების გადაფარვა სჭირდება იმისთვის, რომ შეიცვალოს ან შეივსოს ამ მეთოდის ქცევა. მოდით ჩვენს შემთხვევაში დავამატოთ სახელის სიგრძის შემოწმება:
class Student extends User {
setName(name) {
if (name.length > 0) {
this.name = name;
} else {
throw new Error('student name error');
}
}
}
მოდით დავრწმუნდეთ, რომ სწორედ გადაფარული მეთოდი იძახება. პირველ რიგში, შევქმნათ ობიექტი შვილობილი კლასის:
let student = new Student;
ახლა გამოვიძახოთ ჩვენი მეთოდი, მივაწოდოთ მას კორექტული მნიშვნელობა:
student.setName('john');
ახლა კი გამოვიძახოთ მეთოდი, მივაწოდოთ მას არაკორექტული მნიშვნელობა. შედეგად კონსოლში დავინახავთ გენერირებულ შეცდომას:
student.setName(''); // შეცდომა
კლასში User გააკეთეთ
ასაკის გეთერი და სეთერი.
კლასში Employee გადაფარეთ
ასაკის სეთერი და გააკეთეთ მასში
შემოწმება, რომ ასაკი იყოს
18-დან 65 წლამდე.