// abstract  키워드를 붙여서 추상화 시킨다.
abstract class AbstractPerson {
  protected _name: string = 'malaz';
// abstract 키워드 때문에 내용을 구현하지 않는다.
  abstract setName(name: string): void;
}

// new AbstractPerson() 불가능하다. 완전하지 않은 class 이기 때문

class Person extends AbstractPerson {
  setName(name: string): void {
    this._name = name;
  }
}

const p = new Person();
p.setName('anna');