728x90
반응형
형변환(업캐스팅)
- 상위 클래스로 변수를 선언하고 하위 클래스의 생성자로 인스턴스를 생성
- 상위 클래스 타입의 변수에 하위 클래스 변수가 대입
- 하위 클래스는 상위 클래스의 타입을 내포하고 있으므로 상위 클래스로의 묵시적 형변환이 가능하다.
- 상속 관계에서 모든 하위 클래스는 상위 클래스로 형 변환이 된다.(그 역은 성립하지 않음)
class 오리{
}
class 흰오리 extends 오리{
}
public class Main {
public static void main(String[] args){
오리 오리a = new 흰오리();
}
}
- 흰오리 생성자에 의해 흰오리 클래스의 모든 멤버 변수에 대한 메모리는 생성되었지만 변수의 타입이 오리이므로 실제 접근 가능한 변수나 메서드는 오리클래스의 변수와 메서드이다.
다운캐스팅
- 업캐스팅된 클래스를 다시 원래의 타입으로 형 변환
- 하위 클래스로의 형 변환은 명시적으로 해야한다.
오리 오리a = new 흰오리(); // 묵시적
흰오리 읜오리a = (흰오리)오리a; // 명시적
728x90
반응형
'언어(Language) > Java' 카테고리의 다른 글
[Java] 인터페이스(interface) (0) | 2023.02.28 |
---|---|
[Java] 추상 클래스(abstract class) (0) | 2023.02.28 |
[Java] 상속(Inheritance)과 다형성(polymorphism) (0) | 2023.02.24 |
[Java] 배열(Array) (0) | 2023.02.24 |
[Java] 반복문(while, for) (0) | 2023.02.24 |