개발 한번 해블로그
[Java] 19. 객체 형 변환(feat. 캐스팅) 본문
상속 관계에서의 형 변환에 대해 알아보자
이전에 한번 casting에 대해서 포스팅한 적이 있고 같은 원리라고 생각하면 된당 ㅎㅎ!
1. 부모와 자식 간에 형 변환이 된다
- 부모는 여러 명의 자식을 가리킬 수 있다
- 부모를 알면 자식들을 관리하기 쉽다
1) 업캐스팅(Upcasting)
- 부모와 자식이 상속 관계일 경우 자료형이 다르더라도 부모 타입으로 자식들을 가리킬 수 있음
2) 다운캐스팅(Downcasting)
- 다운캐스팅 : 상위클래스의 타입을 하위클래스의 타입으로 바꾸는 행위
- 강제형변환임
- 부모가 특정 자식으로 갈 때는 자식 타입으로 바꿔야함
자식A c=(자식A)부모;
- 무조건 다운캐스팅이 되는 것이 아니라, 업캐스팅이 되어야 가능함
import fc.java.model.Animal02;
import fc.java.model.Cat02;
import fc.java.model.Dog02;
public class ObjectCasting02 {
public static void main(String[] args) {
Animal02 a=new Dog02(); //업캐스팅
a.eat();
a=new Cat02(); //업캐스팅
a.eat();
a.night(); // 형변환이 필요. 즉 다운캐스팅이 필요
}
}
import fc.java.model.Animal02;
import fc.java.model.Cat02;
import fc.java.model.Dog02;
public class ObjectCasting02 {
public static void main(String[] args) {
Animal02 a=new Dog02(); //업캐스팅
a.eat();
a=new Cat02(); //업캐스팅
a.eat();
//a.night(); // 형변환이 필요. 즉 다운캐스팅이 필요
Cat02 c=(Cat02)a;
c.night();
//((Cat02)a).night(); //위에껄 한줄로 표현
}
}
캐스팅하니까 생각난건데,,, 요즘 유튭에 길거리 캐스팅 당하는 법도 있더라 ㅎㅋㅎㅋㅎㅋㅎㅋ
하필,, 우리집 바로 앞에 JYP 엔터까지,, ^^
'Java' 카테고리의 다른 글
[Java] 21. 추상클래스와 인터페이스의 두둥등장 (2) | 2023.12.20 |
---|---|
[Java] 20. 다형성과 활용 (0) | 2023.12.20 |
[Java] 18. 상속관계에서 객체 생성 및 Override (2) | 2023.12.20 |
[Java] 17. 자바의 상속(Feat. 김탄&최영도) (0) | 2023.12.20 |
[Java] 16. static과 JVM 메모리 모델 이해하기 (0) | 2023.12.08 |