더북(TheBook)

2.20.1 추상 클래스

implements보다 조금 더 구체적으로 클래스의 모양을 정의하는 방법이 있습니다. 추상 클래스(abstract class)입니다.

abstract class AbstractPerson {
  name: string;
  age: number;
  married: boolean = false;
  abstract value: number;

  constructor(name: string, age: number, married: boolean) {
    this.name = name;
    this.age = age;
    this.married = married;
  }
  
  sayName() {
    console.log(this.name);
  }
  abstract sayAge(): void;
  abstract sayMarried(): void;
}
class RealPerson extends AbstractPerson {
  sayAge() {
    console.log(this.age);
  }
}
// Non-abstract class 'RealPerson' does not implement inherited abstract member 'sayMarried' from class 'AbstractPerson'. Non-abstract class 'RealPerson' does not implement inherited abstract member 'value' from class 'AbstractPerson'.
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.