# 클래스 업 캐스팅
## 네이버 지식인 질문 발췌
상속관계의 클래스 P, PP, PPP가 있습니다. 아래와 같이 같은 이름의 필드 `name`를 가지고 있습니다.
```
class P {
public String name;
}
class PP extends P {
public String name;
}
class PPP extends PP {
public String name;
}
```
PPP 객체를 아래와 같이 만들고 P영역, PP영역, PPP영역의 name을 각각 다르게 초기화 해주려면 어떻게 해야할까요?
```
public class SuperAndOverrdingTest {
public static void main(String[] args) {
P p = new PPP();
/* 어떻게 해야 할까요? */
}
}
```
sehongpark님의 답변
## 업 캐스팅
PPP객체를 업캐스팅하여 PP 또는 P 객체로 인식하게 한뒤 인스턴수 변수를 변경 해줍니다.
```
public class SuperAndOverrdingTest {
public static void main(String[] args) {
P p = new PPP();
((P) p).name = "p name"; // P 영역 이름 변경
((PP) p).name = "pp name"; // PP 영역 이름 변경
((PPP) p).name = "ppp name"; // PPP 영역 이름 변경
System.out.println(((P) p).name); // P 영역 이름 출력
System.out.println(((PP) p).name); // PP 영역 이름 출력
System.out.println(((PPP) p).name); // PPP 영역 이름 출력
}
}
```
### 추가 자료
업 캐스팅과 다운 캐스팅에 대해 구글링 해보세요.