ตัวสร้างเมื่อมีการสืบทอดใน OOP ใน JavaScript

เมื่อมีการสืบทอด คุณสามารถเขียนทับ ตัวสร้างของคลาสแม่ได้ ลองดูตัวอย่าง สมมติว่าเรามีคลาสแม่ดังต่อไปนี้:

javascriptclass User {
  constructor(name, surn) {
    this.name = name;
    this.surn = surn;
  }
  
  getName() {
    return this.name;
  }
  getSurn() {
    return this.surn;
  }
}

สมมติว่าคลาสลูกสืบทอดจากคลาสแม่ดังนี้:

javascriptclass Student extends User {
  
}

สมมติว่าเราต้องการขยายตัวสร้างในคลาสลูก โดยเพิ่มพารามิเตอร์เพิ่มเติมเข้าไป:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    
  }
}

ในกรณีนี้เราจำเป็นต้องเรียกตัวสร้าง ของคลาสแม่ผ่านคำสั่ง super เป็นบรรทัดแรก:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super();
  }
}

คำสั่ง super ในสาระสำคัญคือ ตัวสร้างของคลาสแม่ ดังนั้น ให้ส่งพารามิเตอร์ที่ต้องการไปให้มัน:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super(name, surn);
  }
}

ตอนนี้ในคลาสลูก ให้บันทึกปีการศึกษา ลงในคุณสมบัติของตัวคลาสลูกเอง:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super(name, surn);
    this.year = year;
  }
}

มาสร้างเก็ตเตอร์สำหรับปีการศึกษากัน:

javascriptclass Student extends User {
  constructor(name, surn, year) {
    super(name, surn);
    this.year = year;
  }
  
  getYear() {
    return this.year;
  }
}
Задание 1

ให้คลาส Employee สืบทอด จากคลาส User จากบทเรียนนี้

Задание 2

เขียนทับตัวสร้างของคลาสแม่ในคลาส Employee โดยเพิ่มพารามิเตอร์อายุและเงินเดือนเข้าไป

Задание 3

สร้างเก็ตเตอร์สำหรับอายุและ เงินเดือน