[JAVA]객체지향 핵심 - 다형성
카테고리: JAVA
[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 반환
- Upcasting 된 클래스를 다시 원래 타입으로 형변환
댓글 남기기