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 гача эканини текширишни амалга оширинг.