JAVA/chapter01_JAVA_개념정리
chapter16_polymorphism
GAWON
2023. 5. 31. 18:15
1.1 다형성 (Polymorphism)
- 상속관계는 부모와 자식으로 구성되어 있다.
- 부모클래스의 객체(인스턴스) = 참조변수(레퍼런스)는 자식클래스의 객체를 저장 할 수 있다.
(Upcasting) ★
( → 한가지 객체가 다른 타입의 객체가 될 수 있다.)
1.2 업캐스팅 (Upcasting)
- 부모클래스의 참조변수에 자식클래스의 객체를 저장할 수 있다.
- 사용 형식
ex)부모클래스 참조변수 = new 자식클래스();
- 부모클래스에 존재하지않는 멤버는 호출 할 수 없다.(한계점)
- 부모클래스에는 없고, 자식클래스만 가지고있는 멤버는 호출 할 수 없다.(한계점)
1.3 다운캐스팅 (Downcasting)
- 부모클래스의 참조변수에 저장한 자식클래스의 타입은 "부모클래스"이다.
- 이와 같은형태의 자식클래스를 "자식클래스"타입으로 변경하는 것이 다운캐스팅이다.
- 사용 형식
ex) 부모클래스 참조변수 = new 자식클래스(); → 업캐스팅
자식클래스 참조변수2 = (자식클래스)참조변수; → 다운캐스팅
- 강제 형 변환으로 진행되기 때문에 잘못된 형 변환이 발생 할 수 있다.
이를 방지하기 위해서 참조변수의 타입을 바꾸기 전에 확인하는 instanceof 연산자를 활용한다.★
(부모클래스에는 없지만 자식클래스에만 있는 멤버를 사용하려고 다운캐스팅을 이용한다!)