Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
 Vložte nasledujúce triedy Java do prázdneho textového súboru . Jedná sa o triedu , ktorá bude použitá pre tutorial : 
 
 public class Osoba { } 
 
 public class MalePerson rozširuje Osoba { } 
 2 
 vložte nasledujúci Povýšenie : 
 
 osoba p = new MalePerson ( " Tom " ) ; 
 
 trieda MalePerson je podtriedou osoba , takže to je obsadenie do hierarchie . Upcasting je najjednoduchší typ obsadenie zložiť . Java jednoducho vie , čo robiť , keď je podtrieda zaradí do jednej z jej predkov . Skúste si zapamätať , však : Java bude vždy pamätať , čo objekt je skutočne počas Povýšenie . Dokonca aj teraz , že MalePerson " Tom " bola priradená k druhovej osoba objektu , Java si pamätá , že tento objekt je naozaj MalePerson 
 3 
 vložte nasledujúci sklopenými : . 
 < P > Osoba p = new MalePerson ( " Tom " ) ; 
 
 MalePerson m = ( MalePerson ) p ; 
 
 Downcasts takto, že sa pohybujete smerom nadol hierarchiou , vyžadujú , aby programátor určiť typ triedy sa používa pre obsadenie v zátvorkách . Avšak , downcasting je zložitejšie ako upcasting 
 4 
 Pokus nasledujúce sklopenými : 
 
 Osoba p = new Person ( " Jane " ) ; 
 
 MalePerson m = . ( MalePerson ) p ; 
 
 Tento pokus zlyhá , a to by nemalo byť ťažké pochopiť , prečo . Aj keď je rozumné predpokladať , že MalePerson je osoba , to nie je rozumné pre počítač predpokladať , že všetky osoby sú MalePersons . Málo môže byť FemalePersons , a rozdiel môže alebo nemusí byť triviálne na účely tohto počítača . Len pre istotu , program vyvolá chybu . 
 
 Odklopené môže dôjsť len vtedy , ak Povýšenie došlo k prvej , čo je dôvod , prečo Povýšenie v kroku 3 bola platná , ale nie v kroku 4. To môže znieť upcasting k ničomu na prvom mieste . To vyvoláva otázku , prečo bol Povýšenie vykonaná na prvom mieste , ale myslí , že myšlienku 
 5 
 Zvážte nasledujúce metódy : . 
 
 Public void Greet ( osoba p ) { 
 
 if ( p instanceof MalePerson ) { 
 
 MalePerson m = ( MalePerson ) p ; 
 
 m.doMaleThings ( ) ; 
 
 } else if ( p instanceof FemalePerson ) { 
 
 FemalePerson f = MalePerson ) p ( ; 
 
 f.doFemaleThings ( ) ; 
 
 } else throw new GenderConfusionException ( ) ; 
 
 } 
 
 autor tejto metódy nemá žiadny spôsob , ako vedieť vopred, či táto metóda bude volaná s MalePerson alebo objekt FemalePerson , a tak sa používa všeobecný Osoba objekt . Potom sa používa instanceof príkaz na hlasovanie osobe , dané a zistiť , či by sa mal ju skleslý ako mužské alebo ženské osobe .