💡 캐스팅이란?
모든 연산을 진행할 때에는 같은 타입의 피연산자끼리만 수행이 가능한데, 이 때 다른 타입의 피연산자끼리 연산을 수행할 필요가 있을 경우 같은 타입으로 변경해주는 것이다.
int a = 0.1; // 에러 발생 X
int b = (int) true; // 에러 발생 O, boolean은 int로 캐스트가 불가능하다.
// Parent를 상속받은 Child는 Parent의 속성을 포함하고 있기 떄문에 캐스팅을 명시할 필요가 없다.
Parent p = new Child();
// 다운캐스팅은 업캐스팅이 발생한 이후에 작용한다.
Parent p = new Child();
child c = (Child) p;