티스토리 뷰
Goal
- 다운캐스팅에 대해 알아본다
- instanceof에 대해 알아본다
1. 다운캐스팅
- 묵시적으로 상위 클래스 형변환된 인스턴스가 원래 자료형(하위클래스)으로 변환되어야 할 때 다운캐스팅이라 함.
- 하위 클래스로의 형 변환은 명시적으로 되어야 함
Customer vc = new VIPCustomer(); //묵시적
VIPCustomer vCustomer = (VIPCustomer)vc; //명시적
2. instanceof
- 인스턴스가 다른 값을 다운캐스팅 할 때, 오류가 나는 것을 방지해줌
- instacneof는 둘 인스턴스를 비교하여 같은 값을 갖고 있으면 true를 다르면 false를 반환함.
- instanceof라는 안전장치를 만들어서 다형성과 다운캐스팅을 자유롭게 사용할 수 있음.
public void testDownCasting(ArrayList<Animal> list) {
for(int i = 0; i < list.size(); i++) {
Animal animal = list.get(i);
if (animal instanceof Human) {
Human human = (Human)animal;
human.make();
}
else if (animal instanceof Tiger) {
Tiger tiger = (Tiger)animal;
tiger.hunting();
}
else if (animal instanceof Eagle) {
Eagle eagle = (Eagle)animal;
eagle.flying();
}
else {
System.out.println("error");
}
}
}
'Java > Java 올인원 패키지' 카테고리의 다른 글
18. 템플릿 메서드 (Java) (0) | 2020.03.17 |
---|---|
17. 추상 클래스, 템플릿 메서드 (Java) (0) | 2020.03.17 |
14. 메서드 오버라이딩 (Java) (0) | 2020.03.17 |
13. 상속 (Java) (0) | 2020.03.16 |
12. ArrayList (Java) (0) | 2020.03.16 |
댓글
최근에 올라온 글
최근에 달린 댓글
TAG
- 20200429
- chapter8
- 20200804
- 20200427
- likelion
- 20200428
- 20200417
- 20200403
- 20200413
- 20200502
- 20200415
- 백준
- 생활코딩리눅스
- 20200425
- 20200622
- 20200624
- 20201204
- 20200317
- chapter7
- 20200319
- 20200424
- 20200421
- 20200406
- 20200512
- 20200504
- 20200423
- 20200420
- 20200330
- 20200510
- 20200503
- Total
- Today
- Yesterday