추상 클래스(Abstract class)

  1. 추상 클래스(Abstract Class) 란?
    1. 사용하는 이유
  2. 오버 라이딩(orverriding)
    1. 조건
    2. 사용하는 이유

추상 클래스(Abstract Class) 란?

추상 클래스는 여러 클래스에서 공통적인 부분을 모아놓은 클래스, 추상 메소드를 한개라도 가지고 있는 클래스를 추상 클래스라고 합니다.

  • 추상 클래스는 자체만으로 new 연산자를 사용해 인스턴스를 생성할 수 없습니다.
  • 추상 메소드는 반드시 상속 받은 자식 클래스에서 오버라이딩(메소드 재정의) 을 해줘야한다.

*하단에 오버라이딩에 대한 내용이 기술되어 있습니다.

사용하는 이유

  • 클래스간에 멤버변수와 메소드 이름을 통일하여 코드 가독성을 높인다.
  • 공통적으로 사용되는 부분을 미리 선언하여 생산성을 높인다.
abstract class person {
  name: string
  age: number
  constructor (name: string, age: number) {
    this.name = name
    this.age = age
  }

  abstract getName (): string

  abstract getAge (): number

  job (): string {
    return 'inoccupation'
  }
}

class developer extends person {

  constructor (name: string, age: number) {
    super(name, age)
  }

  getName (): string { 
    return this.name
  }

  getAge (): number {
    return this.age
  }

  job (): string {
    return 'developer'
  }
}

const younggil = new developer('younggil', 25)

오버 라이딩(orverriding)

오버 라이딩은 자식 클래스에서 부모 클래스의 같은 이름의 메소드를 재정의 하는 것입니다. 부모 클래스를 상속 받았으나 자식 클래스에서 구현한 메소드를 사용하고 싶은 경우에 주로 사용합니다.

조건

  • 이름이 같아야 한다.
  • 매개변수가 같아야 한다.
  • 반환타입이 같아야 한다.

사용하는 이유

  • 메서드의 이름이 같으니, 동일한 기능이라고 예상 가능하다.
  • 메소드 이름을 절약할 수 있다.

© 2023. All rights reserved.

Powered by Hydejack v9.1.6