[참고] - 클래스형과 클래스의 자료형, 인스턴스형, 인스턴스의 자료형은 모두 비슷한 의미로 사용하는 용어
상위클래스로 암묵적(묵시적) 클래스 형 변환
개념 면에서 보면 상위 클래스가 하위 클래스보다 일반적인 개념이고, 기능 면에서 보면 하위 클래스가 상위 클래스보다 기능이 많다.
👉상속받은 클래스는 상위 클래스 기능을 모두 사용할 수 있고 추가로 더 많은 기능을 구현하기 때문.
하위클래스는 하위클래스형이면서 동시에 상위클래스 형이기도 하다.
즉, 하위클래스로 인스턴스를 생성 할 때 이 인스턴스의 자료형을 상위클래스형으로 클래스 형변환하여 선언할 수 있다.
👉하위클래스는 상위클래스를 상속 받았기 때문. 즉, 하위클래스에 상위클래스가 포함 된 것.
반대로 상위클래스로 인스턴스를 생성할 때 하위클래스형으로 선언할 수 있을까?
👉그렇지않다. 상위클래스가 하위클래스의 기능을 다 가지고있는 것은 아니기 때문이다.
모든 하위 클래스는 상위 클래스 자료형으로 형 변환 될 수 있지만, 그 역은 성립하지 않는다.
정리)
1. 상위 클래스 형으로 변수를 선언하고 하위 클래스 인스턴스를 생성할 수 있다.
2. 하위 클래스는 상위 클래스의 타입을 내포하고 있으므로 상위 클래스로 묵시적 형변환이 가능하다.
3.하위클래스는 상위클래스형을 내포하고있기 때문에 상위클래스 형으로 형 변환 할수 있지만 그 역은 성립되지않는다.
반대로, 다운캐스팅은 이미 업캐스팅된 상태를 원상태로 돌아오게하는 것이다. 전제가 이미 업캐스팅이 된 상태에서 진행되어야 한다. 🙄🙄다음 포스팅에
'Language > JAVA' 카테고리의 다른 글
[JAVA]다형성(Polymorphism) (0) | 2020.06.23 |
---|---|
[JAVA] 가상 메서드(virtual method) (0) | 2020.06.23 |
[JAVA]부모를 부르는 SUPER 예약어 (0) | 2020.06.22 |
[JAVA]상위클래스 변수를 사용하기 위한 protected 예약어 (0) | 2020.06.22 |
[JAVA]상속과 다형성 (0) | 2020.06.22 |
댓글