2006년 6월 19일 월요일

[PL]OOP, polymorphism

C++에서 OOP를 소개할 때, polymorphism도 덧붙여서 이야기하곤 한다.
하지만 polymorphism과 OOP는 좀 다른 개념이다.

. OOP의 특징
  . dynamic look-up
   . 각 object에 알맞는 member function 찾기
   . virtual member function 사용시
  . encapsulation(= abstraction)
  . subtype
  . inheritance

. Polymorphism
  . 다른 type에 대해서 같은 algorithm을 사용하는 것.

. C++
  . template
  . explicit polymorphism
  . type마다 각자 copy를 가진다.

. ML
  . implicit polymorphism
  . 1개의 copy만 가진다.

. Java
  . generic (Java 1.5의 compile-time)
  . Object class를 이용하여 흉내낼 수도 있다.
   (Java 1.5도 run-time에는 그렇게 동작한다.

댓글 없음:

댓글 쓰기