나무 숲

프로그래밍언어론 key7 Inheritance 본문

Career

프로그래밍언어론 key7 Inheritance

wood.forest 2016. 6. 12. 15:27

Generic Type?

타입을 인수로 받는 타입 (parameteric polymorphism)

후자의 타입은 전자의 타입을 통해 생성된 타입


Instantiation of a Generic type : generic type에 타입 인수를 전달함으로써 새로운 타입을 만드는 것


구현 : 타입 인수는 컴파일 시간에 결정되므로 인수가 결정되면 일반 타입과 동일하게 구현 가능하다


Generic Modules : 타입을 인수로 받을 수 있는 프로그램 모듈

Generic Packages in ada, Template class in C++




Inheritance

is -a

일반적 관점

한 프로그램 요소의 특징이 다른 프로그램 요소로 전달되는 것

ADT 관점

한 ADT를 보다 구체화하여 다른 ADT를 만드는 것. superclass - subclass관계를 형성하여 모든 속성을 상속받음

=ADT의 기본 속성을 유지하며 새로운 속성이 추가된 ADT 생성 + is-a 관계 구현


ada의 tagged record, c++의 derived class, java의 subclass




Inheritance - Implementation Issue

Multiple Inheritance

여러 superclass를 둘 수 있나? -> base class의 여러 copy 문제 발생

Dynamic Invocation of Methods

method는 객체에 따라 호출된다 (c++의 virtual function)

Abstract class

극도로 추상화된 클래스는 객채를 생성할 수 없다. 서브클래스에서 생성된 객체들에 대한 인터페이스만을 나타내기 위해 사용




Polymorphism

Ad-hoc polymorphism

실제로 다른 코드지만 같은 이름으로 사용 (Overloading)


Parametric Polymorphism

여러 타입에 대해 동일하게 적용되는 코드

타입 인수를 받으므로 generic module (Generic Programming)


Subtype Polymorphism

is-a 관계가 성립할 때, supertype에 적용 가능한 코드는 subtype에도 적용 가능하다 (Inheritance)

pure polymorphism 


728x90
반응형

'Career' 카테고리의 다른 글

[코로나 SDK] 소개+환경구축  (0) 2016.07.09
프로그래밍언어론 key8 Sequence Control  (1) 2016.06.12
프로그래밍언어론 key6 Encapsulation  (0) 2016.06.12
Control Unit Operation  (0) 2016.06.11
Processor Structure and Function  (0) 2016.06.11
Comments