[TypeScript] OOP 2

수민🐣·2022년 12월 6일
0

TypeScript

목록 보기
14/16

Encapsulation 캡슐화

  1. 서로 연관있는 관련있는 데이터와 함수를 하나의 object로 묶는 것
  2. 데이터와 코드의 형태를 외부로부터 알 수 없게 한다(정보은닉)
  • 어떤 관련있는 데이터를 object로 묶을건지
  • 어떤 데이터는 외부에서 볼 수 있고 볼 수 없는지

BUT 외부에서 함수로 내부의 있는 데이터를 변경 할 수 있음!
보호된 변수는 getter나 setter 등의 메서드를 통해서만 간접적으로 접근이 가능

  • public
  • private
  • protected

Abstraction 추상화

내부의 복잡한 기능을 다 이해하지 않고 외부에서 보이는 interface를 이용하여 object 사용
= 객체를 구성할 수 있는 다양한 속성 중에서 프로그램에 필요한 속성만 간추려 내어 표현하는 것

  • interface
  • private

ex) 커피머신 : 커피머신의 내부 기능을 알지 못해도 버튼 하나로 커피를 만들 수 있음

Inheritance 상속

상위 클래스의 모든걸 하위 클래스가 모두 이어 받는것.
즉, 부모가 자식에게 유전자를 물려주듯이 부모의 특징을 자식에게 모두 물려줍니다.

코드의 재사용
parent - child
super - sub
base - derived

  • extends
  • 오버라이팅
  • super
  • constructior

Polymorphism 다형성

상속을 통해 기능을 확장하거나 변경하는 것을 가능하게 해준다. 즉, 다형성은 형태가 같은데 다른 기능을 하는 것을 의미.
자바의 오버로드(Overload) 또는 오버라이딩(Overriding)이 다형성의 대표적인 예라 할 수 있습니다.

  • 오버로딩(Overloading) : 메서드의 이름은 같고 매개변수의 갯수나 타입이 다른 함수를 정의하는 것
  • 오버라이딩(Overriding) : 상속 받은 하위 클래스가 메서드의 내용만 변경(재정의) 하는 것.

오버로딩과 오버라이딩 성립조건

구분오버로딩오버라이딩
메서드 이름동일동일
매개변수, 타입다름동일
리턴 타입상관없음동일

0개의 댓글