Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- Request
- 한글깨짐
- CONTINUE
- webserver #WAS #ServerApp
- 김영한
- Break
- while문
- xml
- 요구사항정의서
- Servlet
- 톰캣
- 다형성 #부모타입 #자식타입
- Dispatcher
- 매핑 #
- 화면정의서
- Forwarding
- Spring MVC
- https://www.inflearn.com/course/lecture?courseslug=%ea%b9%80%ec%98%81%ed%95%9c%ec%9d%98-%ec%8b%a4%ec%a0%84-%ec%9e%90%eb%b0%94-%ea%b8%b0%eb%b3%b8%ed%8e%b8&unitid=194711
- WAS
- POST방식
- 피그마
- JSON형식의 response
- https://www.inflearn.com/course/lecture?courseslug=%ea%b9%80%ec%98%81%ed%95%9c%ec%9d%98-%ec%8b%a4%ec%a0%84-%ec%9e%90%eb%b0%94-%ea%b8%b0%eb%b3%b8%ed%8e%b8&unitid=194709&category=questiondetail&tab=community&q=1314387
- GET방식
- https://www.inflearn.com/course/lecture?courseslug=%ea%b9%80%ec%98%81%ed%95%9c%ec%9d%98-%ec%8b%a4%ec%a0%84-%ec%9e%90%eb%b0%94-%ea%b8%b0%eb%b3%b8%ed%8e%b8&unitid=194690
- sendRedirect
Archives
- Today
- Total
Step it up now
다운캐스팅 본문
부모 변수(poly)가 자식 인스턴스 참조(다형적 참조)
부모는 자식 타입을 받을 수 있다
Parent poly = new Child();// 참조값 x001
단, 자식의 기능은 호출할 수 없다. 컴파일 오류 발생함
poly.childMethod(); //불가함
가능하게 하려면?
다운캐스팅(부모 타입 -> 자식 타입으로 바꿈)
Child child = (Child) poly;
child.childMethod(); //자식의 메서드 호출 가능
자식 타입은 부모 타입을 못 받으니까 타입을 변형한 후에 부모 변수 poly에 있는 참조값 x001을 child에 넣음
일시적 다운캐스팅 - 해당 메서드를 호출하는 순간만 다운캐스팅
(child)poly.childMethod();
연산자 우선순위 때문에 적용이 안 됨. 괄호로 우선순위 표시
((Child) poly).childMethod();
그렇다고 부모 변수 poly가 child 타입으로 바뀌는 것은 아님
주의할 점
- new Child()로 인스턴스 생성시
자식클래스가 부모클래스까지 포함하기때문에 문제 없음
Parent parent1 = new Child();
Child child1 = (Child) parent1;
child1.childMethod(); //문제 없음
- new Parent()로 인스턴스 생성시
부모 클래스만 생성된 것. 자식 클래스는 생성되지 않았기 때문에 강제로 다운캐스팅하여도 찾을 수 없다
(인스턴스 내부에 없는 부분을 선택하는 문제가 발생)
Parent parent2 = new Parent();
Child child2 = (Child) parent2; //런타임 오류 - ClassCastException
'개인공부 > java' 카테고리의 다른 글
Static 문제 풀이 (0) | 2024.08.20 |
---|---|
상속 super( ); (0) | 2024.07.08 |
상속시 인스턴스 생성 (1) | 2024.07.08 |
stack 구조 (0) | 2024.06.25 |
package (1) | 2024.06.05 |