Bir sınıf kendisini extend eden sınıfa cast edilebilir . Buna downcasting denir. Peki upcasting ile farki nedir? Javada kullanim amaci nedir?