캐스팅이란?
- 타입을 변환하는 것. 형변환
- 부모와 자식 클래스 간 형변환 가능
Upcasting
- 자식 클래스의 객채가 부모 클래스 타입으로 형변환 되는 것
- p는 Student 객체를 가리키지만, p는 Person 타입이기 때문에 Person 멤버에만 접근 가능하다.
class Person{
String name;
Person(String name){
this.name = name;
}
}
class Student extends Person{
String check;
Student(String name){
super(name);
}
}
public class Main{
public static void main(String[] args){
Student s = new Student("홍길동");
Person p = s; // 업캐스팅
p.name = "이름이다.";
p.check = "컴파일 에러 발생"; // 컴파일 에러 발생
}
}
Downcasting
- 업캐스팅 된 것을 다시 원상태로 돌리는 것
- 하위 클래스로 다운캐스팅 시, 타입을 명시적으로 지정
- Student s=(Student) p
public class Main{
public static void main(String[] args){
Person p = new Student("홍길동");
Student s = (Student)p; // 다운캐스팅
s.name = "김유신";
s.check = "check!";
}
}
'Programming > Java' 카테고리의 다른 글
추상 클래스 (0) | 2024.10.08 |
---|---|
SOLID, 객체 지향 설계 원칙 (0) | 2022.02.25 |
ArrayList vs LinkedList (0) | 2022.02.23 |
Collections.sort() (0) | 2022.02.23 |
Wildcard <?> (0) | 2022.02.22 |