เมธอดนามธรรมใน OOP ใน TypeScript

บางครั้งคลาสลูกต้องมีเมธอดร่วมกัน แต่การนำเมธอดนั้นไปใช้งานขึ้นอยู่กับคลาสลูกเฉพาะ ในกรณีนี้สามารถประกาศเมธอดนั้นในคลาสแม่ที่เป็นนามธรรมได้ โดยไม่ต้องเขียนการนำไปใช้งาน จากนั้นคลาสลูกจะต้องทำการนำเมธอดเหล่านี้ไปใช้งาน เมธอดดังกล่าวเรียกว่า เมธอดนามธรรม และยังประกาศโดยใช้คำสั่ง abstract

ตัวอย่างเช่น ลองใช้คลาสนามธรรมของเรา User ให้คลาสลูกของคลาสนี้ต้องมีเมธอด show ที่แสดงข้อมูลของอ็อบเจกต์

อย่างไรก็ตาม การนำเมธอดนี้ไปใช้งานจะขึ้นอยู่กับคลาสลูก ลองประกาศเมธอดนี้เป็นนามธรรมในคลาส User:

typescriptabstract class User {
  public name: string;
  
  constructor(name: string) {
    this.name = name;
  }
  
  public abstract show(): string;
}

นำเมธอดนี้ไปใช้งานในคลาสลูก Student:

typescriptclass Student extends User {
  public course: number;

  constructor(name: string, course: number) {
    super(name);
    this.course = course;
  }
  
  show() {
    return this.name + ' ' + this.course;
  }
}

นำเมธอดนี้ไปใช้งานในคลาสลูก Employee:

typescriptclass Employee extends User {
  public salary: number;

  constructor(name: string, salary: number) {
    super(name);
    this.salary = salary;
  }
  
  show() {
    return this.name + ' ' + this.salary;
  }
}
Задание 1

ในคลาสนามธรรม Figure สร้างเมธอดนามธรรมสำหรับรับพื้นที่และเส้นรอบรูป

Задание 2

ในคลาสลูก Square และ Rectangle เขียนการนำเมธอดเหล่านี้ไปใช้งาน