// 추상클래스(abstract class)
// - 다른 클래스가 상속받을 수 있는 클래스
// - 직접 새로운 인스턴스 생성 불가능
// 주요 코드
abstract class User {
constructor (
private firstName : string,
private lastName : string,
public nickName : string
) {
abstract getNickname() : void;
};
};
// private를 사용하면 상속 받은 클래스 안에서도 this를 사용해 접근이 불가능
// 그래서 protected를 사용하면 상속받은 클래스 안에서 this를 사용해 접근 가능
// 물론 protected로 지정된 건 외부에서 사용이 불가능
// 추상클래스 안에 메소드 작성은 안되고 call signature만 작성해야 함
// 추상클래스 안의 메소드는 결국 구현되지 않는다고 나옴
구분 선언한 클래스 내 상속받은 클래스 나의 인스턴스
private ⭕ ❌ ❌
protected ⭕ ⭕ ❌
public ⭕ ⭕ ⭕