Witam i życzę świetnego dnia wszystkim !
Moje pytanie odnosi się do tego czy dobrze zrozumiałem temat rzutowania objektów (pomijam to rzutowanie typów prostych).
1.Rzutowanie obiektu na inny typ służy do zmienienia funkcjonalności(dostęp do metod/obiektów/zmiennych typu rzutowanego) obiektu.
2.Rzutowanie przeprowadza z pomocą zmiennej pomocnej takiego samego typuTyp_123 co rzutowanieTyp_123.
Inny_typ zmienna_rzutowana - new Inny_typ() ;
Typ_123 zmienna_pomocicza = (Typ_123)zmienna_rzutowana ;
-
Typ_123 musi dziczyć Inny_typ - bez dziedziczenia nie ma rzutowania bo kompilatorr wyrzuci wyjątek ponieważ będzie się odwoływał obiektów/metod do których nie ma dostępu bo ich nie odziedziczył ---> // class Typ_123 extends Inny_typ
-
Inny_typ zmienna_pomocicza traci referencje (dostęp) do metod/obiektów.zmiennych swojego typu ( Inny_typ ) których nie ma w typie rzutowanym np:
Inny_typ ---> (a=3 , b=5 , c=11)
Typ_123 ---> (a,c)
Typ_123 zmienna_pomocicza = (Typ_123)zmienna_rzutowana - traci dostep do b - czyli a=3 c=11
co w przypadku kiedy:
Inny_typ ---> (a=3 , b=5 , c=11)
Typ_123 ---> (a=22,c=55)
Typ_123 zmienna_pomocicza = (Typ_123)zmienna_rzutowana - traci dostep do b - czyli a=22 c=55 ???????????
PS.
Pytania :
Poza szczególnymi przypadkami jakie praktyczne zastosowanie może mieć rzutowanie?
Pozdrawiam