반응형
1. 다형성 (polymorphism)이란?
1) 하나의 코드가 여러 자료형으로 구현되어 실행되는 것이다.
2) 같은 코드에서 여러 실행 결과가 나온다.
3) 정보은닉, 상속과 더불어 OOP의 가장 큰 특징 중 하나이다.
4) 다형성을 잘 활용하면 유연하고 확장성 있고, 유지보수가 편리한 프로그램을 만들 수 있다.
2. 다형성을 사용하는 이유(=장점)
1) 상속과 메서드 재정의를 활용하여 확장성 있는 프로그램을 만들 수 있다.
2) 다형성이 적용이 되지 않는 경우엔 if, else if문이 구현되고 코드의 유지 보수가 어려워진다.
3) 상위 클래스에서는 공통적인 부분을 제공하고 하위 클래스에서는 각 클래스에 맞는 기능을 구현한다.
4) 여러 클래스를 하나의 타입(상위 클래스)으로 핸들링할 수 있다.
3. 다형성으로 인한 형변환(캐스팅; casting)
1) 형변환의 전제 조건 -- 상속 관계에 있는 것만 객체 타입 변환이 가능.
2) Up-Casting (업 캐스팅) : 자식타입에서 부모 타입으로 형 변환, 형 변환 생략 가능, 묵시적 형 변환 => Side effect : 조작할 수 있는 멤버 변수가 줄어든다.
3) Down-Casting (다운 캐스팅) : 업캐스팅된 클래스를 다시 원래의 타입으로 형 변환하는 것이다.
- 하위 클래스로의 형변환은 명시적으로 해야 한다.
Customer customerX = new VIPCustomer(); //묵시적 : 업캐스팅 VIPCustomer vcustomerX = (VIPCustomer)customerX; //명시적 : 다운캐스팅 |
4. instanceof 연산자
- 원래 인스턴스의 형(Type)이 맞는지 여부를 체크하는 키워드이다.
- 맞으면 true, 아니면 false를 반환한다.
반응형
'프로그래밍 > Java' 카테고리의 다른 글
[자바 - Java] 인터페이스 추상클래스 사용 이유 상속 예제 구현 implements (0) | 2022.09.04 |
---|---|
[자바 - Java] 추상클래스 추상메소드 인터페이스 예제 (0) | 2022.09.03 |
[자바 - Java] 자바 상속 예제 문제 생성자 오버라이딩 super 다형성 (0) | 2022.09.01 |
[자바 - Java] 자바 배열 선언 정렬 출력 추가 복사 자르기 (0) | 2022.08.31 |
[자바 - Java] 스태틱 클래스 변수 메소드 싱글톤패턴 (0) | 2022.08.30 |