프로그래밍/Java / / 2022. 9. 2. 09:59

[자바 - Java] 다형성 구현 이유 형변환 instanceof

728x90
반응형
SMALL

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를 반환한다.

 

728x90
반응형
LIST
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유