TIL 38 | TS - 클래스와 인터페이스를 사용한 객체 지향 프로그램

Yonghyun·2021년 12월 5일
0

TypeScript

목록 보기
2/4
post-thumbnail

클래스 상속

타입스크립트는 기존 클래스를 기반으로 새 클래스를 만들 수 있다.
상속은 객체 지향 언어의 특징으로, extends 키워드는 한 클래스가 다른 클래스를 상속함을 선언할 때 사용한다.

위의 코드에서 Employee 클래스는 Person의 서브 클래스이다. 따라서 Person 클래스는 Employee의 슈퍼 클래스이다. Person 클래스는 부모이고 Employee는 Person의 자식 클래스이다.

클래스는 프로퍼티 이외에도 메서드를 가지는데 이 메서드로 클래스 내부에 선언된 함수를 호출한다. 메서드가 슈퍼 클래스에서 선언된 경우, 해당 메서드가 private이 아니면 서브 클래스에 상속된다.

public, private, protected 접근 제어자

타입스크립트는 접근 제어자 public, private, protected로 클래스 멤버의 접근 권한을 제어한다.

  • public - 모든 내부 및 외부 클래스에서 접근할 수 있다. 타입스크립트는 기본적으로 모든 멤버의 접근 권한이 public이다.
  • protected - 동일 패키지에 속하는 클래스와 서브 클래스 관계일 경우에만 접근 가능하다.
  • private - 클래스 내에서만 접근 가능하다.

싱글톤

전체 데이터를 한 곳에서 관리하는 원칙을 단일 데이터 소스 또는 단일 진실 공급원이라고 부른다. 객체 지향 언어에서는 단 하나의 인스턴스를 생성하는 디자인 패턴을 싱글톤이라고 한다. 프로그램 전반에서 사용하는 인스턴스를 하나만 구현하고 생성된 인스턴스 객체는 어디에서든지 참조할 수 있다.

super() 메서드와 super 키워드

슈퍼 클래스와 서브 클래스 모두 생성자가 있는 경우 서브 클래스의 생성자는 super() 메서드로 슈퍼 클래스의 생성자를 호출해야 한다.

추상 클래스

추상 클래스는 객체로 만들 수 없는 추상적인 개념으로 일종의 설계도 역할을 한다.
추상 클래스는 abstract 키워드로 선언하며 추상 클래스로부터 객체를 생성하기 때문에 인스턴스화될 수 없다. 추상 클래스에서는 프로퍼티와 메서드도 abstract로 선언할 수 있다.

다형성

상속을 통해 기능을 확장하거나 변경하는 것을 다형성이라고 하며 이는 객체 지향 언어의 주요 특성중 하나이다.

메서드 오버로딩

메서드 오버로딩은 파라미터의 유형과 개수가 다르지만 이름이 같은 메서드를 여러 개 가질 수 있게 만드는 것을 의미한다.

오버로딩 메서드는 타입스크립트 컴파일러가 올바른 방법으로 메서드를 호출할 수 있게 도와주기 때문에 파라미터 타입과 함수 반환 값에 유니온을 사용하여 메서드를 구현할 수 있음에도 불구하고 오버로딩 메서드를 사용한다.
그러나 로직을 읽고 판단하기 힘들어질 수 있다는 단점이 있기 때문에 오버로딩 사용을 절제하는 것이 일반적이다.

profile
Life is all about timing.

0개의 댓글