[java] rzutowanie a kowersja

0

Witam mam pytanie.
czy rzutowanie w gore to to samo co konwersja obiektowa?

0

Zaryzykowalbym stwierdzenie ze nie jest to to samo, gdyz konwersja oznacza przeksztalcenie jednego typu na inny, natomiast w przypadku rzutowania w gore nie mamy zmiany typu gdyz klasa potomna jest typu klasy bazowej.

Ale nie jestem teoretykiem , raczej praktykiem, wiec ... nalezy ten tekst traktowac z pewna doza krytycyzmu.

Swoja droga po raz pierwszy skotykam sie z okresleniem "konwersja obiektowa".

0

Podstawowa roznica: w Javie nie ma konwersji. Jest tylko rzutowanie i to na dodatek dynamiczne. Nawet wzorce w Javie 5 sa tylko zakamuflowanym rzutowaniem dynamicznym. Dlatego progsy w Javie beda zawsze nieco wolniejsze niz w C++, chocby Java byla kompilowana natywnie, a JVM zoptymalizowana do granic mozliwosci.

Ja bym zaproponowal inna definicje: Konwersja to przeksztalcenie obiektu jednego typu w obiekt innego typu. Rzutowanie to konwersja, ktora nie modyfikuje danych obiektu, ani nie wykonuje jego kopii. Rzutowanie na ogol nie powoduje powstania dodatkowego kodu wynikowego (statyczne), dodaje jedynie kod sprawdzajacy, czy wolno rzutowac (dynamiczne), konwersja dodaje kod konwertujacy (zwykle kopiujacy) obiekt.

0

yyy jasne a strona 127 ksiazki B. Eckela i 'konwersje zawezajace' , 'konwersje rozszerzajace' to ...

1 użytkowników online, w tym zalogowanych: 0, gości: 1