[JAVA]객체지향 핵심 - 다형성

Date:     Updated:

카테고리:

태그:

[18] 객체지향 핵심 - 다형성

18.1. 다형성(Polymorphism)

  • 하나의 코드를 복수의 자료형으로 구현 및 실행 : 여러 결과 출력
  • 정보은닉, 상속과 더불어 객체 지향 프로그래밍(OOP)의 가장 큰 특징 중 하나
  • 유연하고 확장성이 좋으며, 프로그램의 유지/보수가 편리하다

18.2. 다형성의 장점(장점)

  • 상속과 메서드 재정의를 활용해 프로그램의 확장성 상향
    • ex) 다른 동물을 추가하는 경우
  • 다형성이 적용되지 않는 경우 if ~else/if문이 필요
    • : 코드의 유지/보수 난이도 상승

18.2.2 다형성의 특징

  • 상위 클래스에서 공통적인 부분 구현, 하위 클래스에서 각 클래스에 맞는 기능 구현
  • 여러 클래스를 하나의 타입(상위 클래스)으로 통합하여 다룰 수 있다

18.3. 다형성을 활용하는 형변환(캐스팅)

  • 상속 관계에서만 변환 가능
  • Upcasting
    • 자손 타입에서 조상 타입으로 형변환, 생략 가능(묵시적) => 조작해야 하는 멤버변수 줄어듬
  • Downcasting
    • Upcasting 된 클래스를 다시 원래 타입으로 형변환
      • 하위 클래스로의 형 변환은 명시적으로 해야함.
        ex)
        Customer customerK = new VIPCustomer()); // 묵시적 형변환
        
        ex)
        VIPCustomer  vcustomerK = (VIPCustomer)customerK; // 명시적 형변환
        
    • Instance of 연산자
      • 인스턴스의 형(Type) 체크
      • 원래 타입 여부를 체크하는 키워드
        • 맞으면 true, 아니면 false 반환

JAVA 카테고리 내 다른 글 보러가기

댓글 남기기