상식닷컴
로그인
가입하기
2026년 상식닷컴 선정 식당 & 카페 리스트
2025년 2026년 신상 호텔 리스트
최근에 오픈한 호텔을 찾는다면 살펴보세요
일주일 식단표 어플
자동 일주일 식단표 어플
안드로이드
아이폰
주식 & 코인 차트의 신
1000만원으로 2000만원 만들기 프로젝트
수정하기 - 타입스크립트에서 상속은 어떻게 이루어지나요?
닉네임
비밀번호
제목
내용
[이미지 업로드는 권한이 있는 사람만 가능. 하단 카톡으로 연락]
타입스크립트(TypeScript)에서 상속(Inheritance)은 객체 지향 프로그래밍의 중요한 개념 중 하나로, 기존 클래스의 속성과 메서드를 새로운 클래스에서 재사용할 수 있게 해줍니다. 타입스크립트는 <a href='https://sangseek.com/sangseeks/자바/ko'>자바</a>스크립트를 기반으로 하므로, 자바스크립트의 프로토타입 기반 상속과 클래스 기반 상속을 모두 지원합니다. 여기서는 클래스 기반 상속에 대해 자세히 설명하겠습니다. 1. 클래스 정의 타입스크립트에서 클래스를 정의하는 기본 문법은 다음과 같습니다: ```typescript class Animal { constructor(public name: string) {} speak() { console.log(`${this.name} makes a noise.`); } } ``` 위의 코드에서 `Animal` 클래스는 `name`이라는 속성을 가지고 있으며, `speak`라는 메서드를 정의하고 있습니다. 2. 상속 상속을 구현하기 위해서는 `extends` 키<a href='https://sangseek.com/sangseeks/워드/ko'>워드</a>를 사용합니다. 자식 클래스는 부모 클래스의 속성과 메서드를 상속받으며, 필요에 따라 추가적인 속성이나 메서드를 정의할 수 있습니다. ```typescript class Dog extends Animal { speak() { console.log(`${this.name} barks.`); } } ``` 위의 코드에서 `Dog` 클래스는 `Animal` 클래스를 상속받고, `speak` 메서드를 오버라이드(재정의)하여 개의 소리를 출력하도록 변경했습니다. 3. 생성자와 super() 자식 클래스에서 생성자를 정의할 때는 반드시 부모 클래스의 생성자를 호출해야 합니다. 이를 위해 `super()` 함수를 사용합니다. ```typescript class Cat extends Animal { constructor(name: string) { super(name); // 부모 클래스의 생성자 호출 } speak() { console.log(`${this.name} meows.`); } } ``` 위의 `Cat` 클래스는 `Animal` 클래스를 상속받으며, 생성자에서 `super(name)`을 호출하여 부모 클래스의 생성자를 실행합니다. 4. 접근 제어자 타입스크립트는 `public`, `private`, `protected`와 같은 접근 제어자를 지원합니다. 이를 통해 클래스의 속성과 메서드에 대한 접근을 제어할 수 있습니다. - `public`: 모든 클래스에서 접근 가능 - `private`: 해당 클래스 내에서만 접근 가능 - `protected`: 해당 클래스와 그 자식 클래스에서 접근 가능 ```typescript class Animal { protected name: string; constructor(name: string) { this.name = name; } } class Dog extends Animal { speak() { console.log(`${this.name} barks.`); } } ``` 위의 코드에서 `name` 속성은 `protected`로 선언되어, `Animal` 클래스와 `Dog` 클래스에서 접근할 수 있지만, 외부에서는 접근할 수 없습니다. 5. 다중 상속 타입스크립트는 클래스의 다중 상속을 지원하지 않습니다. 그러나 인터페이스를 사용하여 다중 상속의 효과를 낼 수 있습니다. 여러 인터페이스를 구현하는 클래스를 정의할 수 있습니다. ```typescript interface CanRun { run(): void; } interface CanBark { bark(): void; } class Dog implements CanRun, CanBark { run() { console.log("Dog is running."); } bark() { console.log("Dog barks."); } } ``` 위의 코드에서 `Dog` 클래스는 `CanRun`과 `CanBark` 두 개의 인터페이스를 구현하고 있습니다. 6. <a href='https://sangseek.com/sangseeks/정적 메서드/ko'>정적 메서드</a>와 속성 정적 메서드와 속성은 클래스의 인스턴스가 아닌 클래스 자체에 속합니다. 상속받은 클래스에서도 정적 메서드와 속성을 사용할 수 있습니다. ```typescript class Animal { static numberOfLegs: number = 4; static getLegs() { return this.numberOfLegs; } } class Dog extends Animal {} console.log(Dog.getLegs()); // 4 ``` 7. 결론 타입스크립트에서 상속은 코드의 재사용성을 높이고, 객체 지향 프로그래밍의 원칙을 따르는 데 중요한 역할을 합니다. 클래스와 인터페이스를 통해 상속을 구현함으로써, 더 구조적이고 유지보수하기 쉬운 코드를 작성할 수 있습니다. 상속을 적절히 활용하면 코드의 중복을 줄이고, 기능을 확장하는 데 유용합니다.
이용안내
커뮤니티 이용안내
×
- 게시한 게시글로 발생하는 문제는 게시자에게 책임이 있습니다.
- 게시글이 타인/타업체의 저작권을 침해할 경우 모든 책임은 게시자에게 있습니다. 게시자가 모든 손해를 부담해야 합니다.
- 상식닷컴 운영자는 게시자와 상의하지 않고 게시글을 수정 또는 삭제할 수 있습니다.
- 상식닷컴 운영자는 깨끗한 커뮤니티 공간을 만드는 것이 1순위입니다.
수정하기
취소하기