[TypeScript] 추상클래스란 무엇인가 (임시)

2024. 10. 30. 22:45·Front end/TypeScript

추상클래스는 클래스들의 클래스이다. 객체지향의 개념을 알고 있으면 추상화라는 개념을 이해할 수 있지만 그렇지 않다면 너무 어렵게 느껴진다. 이번 단원에서는 추상화의 개념과 추상 클래스에 대해 포스팅 하려한다.

 

추상의 사전적 의미는 다음과 같다.

사물이나 표상을 어떤 성질, 공통성, 본질에 착안하여 그것을 추출하여 파악하는 것 

 

뽑을 추(抽): "뽑다", "끌어내다"를 의미한다. 

형상 상(象): "형상"이나 "모양"을 뜻한다. 

 

즉, 어떤 대상의 특징만을 뽑아내어 간추리는 것이다. 그렇다면 특징을 어떻게 뽑아낼 수 있을까? 

 

예를 들어 자동차, 비행기, 기차가 있다면 이 것들의 공통된 특징은 바로 '이동수단' 이라는 점이다. 이렇게 추상화를 하면 객체 하나하나의 디테일 보다는 공통된 특징만이 남게 된다. 

 

다시 생각해보면 우리가 자동차, 비행기, 기차를 먼저 구현하지 않고 "이동수단"을 먼저 구현한다면 가지를 뻗어 공통된 성질을 갖는 여러가지 이동수단을 만들 수 있을 것이다. 이것이 바로 추상화의 핵심이다. 

 

다시 처음으로 돌아가 추상 클래스는 클래스들의 클래스라고 했다. 애초에 클래스가 추상화를 한 상태인데 어떻게 또 특징을 뽑아낼 수 있을까?

 

예를 들어서 당신이 '메이플스토리' 게임을 하고있다고 가정하자. 당신은 '전사' 직업을 플레이 하고 있다. 이 때의 '전사'는 클래스에 속하고 당신의 캐릭터는 '객체'이다.

 

하지만 전사와 마법사 도적 모두 가지고 있는 공통된 특징이 있다. 레벨, 체력바 ... 와 같은 공통된 형상을 뽑아낸 뒤 "캐릭터" 라는 "추상클래스"에 넣을 수 있을 것이다.

 

그리고 마찬가지로 추상메서드라는 개념도 존재한다. 모든 클래스는 '공격'을 할 수 있다. 따라서 '캐릭터' 라는 추상클래스에 공격 메서드를 선언할 수도 있다. 

 

또한 추상클래스는 직접적인 인스턴스를 뽑아내지 못한다. 반드시 "직업" 을 가진 구체적인 클래스만 인스턴스를 뽑을 수 있다.

반응형
저작자표시 (새창열림)

'Front end > TypeScript' 카테고리의 다른 글

[TypeScript] 다형성과 제네릭  (2) 2024.10.27
[TypeScript] unknown, void, never 타입에 대해서 알아보자  (3) 2024.10.26
[TypeScript] Readonly , Tuple에 대해서 알아보자  (0) 2024.10.26
[TypeScript] 변수와 타입, 함수 생성  (1) 2024.10.24
'Front end/TypeScript' 카테고리의 다른 글
  • [TypeScript] 다형성과 제네릭
  • [TypeScript] unknown, void, never 타입에 대해서 알아보자
  • [TypeScript] Readonly , Tuple에 대해서 알아보자
  • [TypeScript] 변수와 타입, 함수 생성
re-hwi
re-hwi
재휘의 개발일기
    반응형
  • re-hwi
    Dvelopment blog
    re-hwi
  • 전체
    오늘
    어제
    • 재휘의 개발일기 (167)
      • 개발 (25)
        • 소프트웨어 공학 (25)
      • Python (18)
        • numpy (8)
      • OS (23)
        • 쉽게 배우는 운영체제 (23)
      • Front end (1)
        • HTML (6)
        • CSS (9)
        • JavaScript (18)
        • React (2)
        • Vue.js (5)
        • TypeScript (5)
        • Sass (3)
      • Algorithm (1)
        • 파이썬 알고리즘 인터뷰 (2)
        • 자료구조와 함께 배우는 알고리즘 (20)
      • Android (2)
        • 안드로이드 앱 프로그래밍 with 코틀린 (2)
      • Project (15)
      • Network (0)
      • etc (12)
        • 이것저것 (10)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    정보처리기사
    TS
    CSS
    개발
    오블완
    HTML
    vue
    scss
    알고리즘
    정처기
    티스토리챌린지
    pwa
    js
    JavaScript
    연결리스트
    프론트엔드
    FE
    플레이리스트
    타입스크립트
    컴포넌트
    표
    자료흐름도
    파이썬
    뷰
    자료구조
    numpy
    REACT
    typeScript
    리액트
    sass
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
re-hwi
[TypeScript] 추상클래스란 무엇인가 (임시)
상단으로

티스토리툴바