[7] Inheritance
Private Type
- Enforcing encapsulation
- Add protection
Class
- C++에서는 Class를 통해 ADT를 구현
- 데이터 공간 = 멤버 변수
- 추상 연산자 = 멤버 함수
Generic Data Type
- Parameteric polymorphism을 형성
- 타입을 인수로 받아 생성된 새로운 타입 (Instantiation of a class)
- 타입 인수는 컴파일 시간에 결정된다
Inheritance
- 외부 변수 이름을 블록 내부에서 볼 수 있는 것도 interitance의 일종
- 어떠한 ADT를 보다 구체화한 새로운 ADT를 만드는 것
- Superclass, subclass 관계를 형성
- Should represent "IS-A" relation
- Multiple inheritance를 통한 diamond-inheritance 이슈 발생
- Dynamic Invocation of Methods (overriding or virtual)
Polymorphism
- Ad-hoc Polymorphism (overloading)
- Parametric Polymorphism (generic modules)
- Subtype Polymorphism (IS-A, pure polymorphism)
'CS > 프로그래밍 언어론' 카테고리의 다른 글
[프로그래밍 언어론] Subprogram Control (10) (0) | 2024.06.20 |
---|---|
[프로그래밍 언어론] Sequence Control (9) (0) | 2024.06.20 |
[프로그래밍 언어론] Encapsulation - Abstract Data Types (7) (0) | 2024.06.20 |
[프로그래밍 언어론] Structured Data Types (6) (0) | 2024.04.25 |
[프로그래밍 언어론] Elementary Data Types (5) (0) | 2024.04.25 |