///////
Search
🚎

다형성

전승환_0927, 박수진_0927

업캐스팅 & 다운캐스팅

다형성의 핵심적인 특징이다.

1.
업캐스팅: 상속 관계에 있는 두 객체 중 Child Object(자식 객체)를 사용하여 부모 객체(Parent Object)를 선언 및 생성할 수 있는 것을 말한다. “부모 = 자식”의 형태
예시 코드
코드 설명
형변환을 위해 명시해야 하는 괄호는 생략 가능하다
그렇다면 다음 코드의 결과는 어떨까? (왼쪽 클릭)
결과 보기
2.
다운캐스팅: 업캐스팅과 반대로 Parent Object(부모 객체)를 이용해 Child Object(자식 객체)를 형변환 하는 것을 말한다. 이전에 업캐스팅이 된 객체에 한해서만 가능하다.
예시코드
업캐스팅과는 다르게 괄호를 반드시 명시해야 한다 → 형태: (자식 객체 이름) 부모 객체

다형성의 활용

다형성을 활용하면 보다 편리하고 효율적으로 코드를 작성할 수 있다. 예로, 배열을 만들 때, 하나만의 부모 클래스 타입을 사용해 선언하여도 모든 자식 클래스를 배열의 원소로 사용할 수 있게 된다.
코드 예시
결과 보기
배열 외에도 프린트 함수나 다른 메서드에서도 유용하게 사용 가능하다!

Instanceof연산자

obj(객체명) instanceof Rectangle(클래스타입)
불린 타입의 변수를 리턴 (True, False 중 1)
객체의 실제 타입을 알고 싶으면 instanceof 연산자를 사용
캐스팅 가능 여부를 확인하기 위해 사용
obj에서 Rectangle로 다운캐스팅이 가능한지 여부를 반환한다고도 말할 수 있다
예시코드
코드설명
실무에서 복잡한 코드를 볼 때 활용하여 사용하는 객체가 어떤 타입인지 쉽게 알 수 있다. 그러나, 외부의 불필요한 객체에 타입이 알려지므로 캡슐화가 보장되지 않는다는 단점이 있다.