• 개요
    • 하나의 객체가 여러 타입을 가질 수 있는 것을 의미한다.
  • 목적
    • 사용자의 편의성을 보장하자.
    • 유지보수를 편하게 하자.
      • 객체 지향 설계로 만든 코드의 경우, 상위 클래스 타입을 공유하는 하위 클래스 객체를 교환하는 것으로, 코드 수정량을 줄일 수 있다.
  • 수단
    • Upcasting
      • 상위 클래스 타입을 가지는 하위 클래스 객체를 생성하는 것이다.
    • Overriding
      • 상위 클래스의 메서드와 동일한 시그니처를 하위 클래스에서 재정의 하는 것이다.
      • 상위 클래스의 자료형을 가지는 하위 클래스 객체의 메서드를 실행하면, 동적으로 상위 클래스가 아닌 하위 클래스에서 재정의된 메서드를 실행한다.
    • Overloading
      • 메서드의 이름은 같되, 매개변수만 바꾸어 여러 메서드로 정의한 것이다.
      • 매개 변수의 타입, 순서, 갯수만 바꾸어도 같은 이름의 함수의 호출로, 서로 다른 함수를 호출할 수 있다.
반응형

+ Recent posts