V: Glede na to:
zasebno
metod ni mogoče preglasiti s podrazredidokončno
metod ni mogoče preglasiti s podrazredidokončno
metode omogočajo hitrejšo kodo, kadar je prevedena z optimizacijami na(javac -O)
Moja vprašanja so: A: Kot poudarjate, podrazredi morda ne bodo razveljavili No, praksa razglasitve vseh Torej, da bi odgovorili na prvo vprašanje, ni treba razglasiti Kar zadeva vprašanje 2, lahko to optimizira prevajalnik in JVM Torej, da odgovorim na vprašanje 2, da, vsi prevajalci bodo obravnavali Bolj zanimivo vprašanje: Ali bodo vsi prevajalniki optimizirali Opomba: Naša razprava o zasebnem finalu velja samo za metode. Zasebne spremenljivke končnih članov se obravnavajo različno zasebno
metode dokončno
prav tako?zasebno
metode kot dokončno
?zasebno
metode po zasnovi. Poleg tega dokončno
ključna beseda sporoča prevajalniku, da podrazredi ne smejo preglasiti metode ne glede na njeno raven dostopa. Od zasebno
že pomeni, da podrazred ne sme preglasiti metode, pri čemer razglasi a zasebno
metoda biti dokončno
je odveč. Izjava ne bo povzročala težav, vendar pa tudi ne bo ničesar dosegla zasebno
s se samodejno upoštevajo dokončno
. zasebno
metode dokončno
bo imel en stranski učinek. Vsak začetnik Java programer, ki naleti na vašo kodo, bo izenačil vašo uporabo zasebni finale
, razmišljam o tem zasebno
s je treba prijaviti na ta način. Tako boste lahko presodili, kdo in kdo ni bil v stiku z vašo kodo. Lahko se izkaže za zanimivo vajo. zasebno
člani dokončno
. zasebno
metode in dokončno
metode. Ker podrazredi teh vrst morda ne bodo preglasili, med izvajanjem ni treba izvajati dinamične vezave. Podrazredi metode nikoli ne bodo preglasili, zato bo izvajalno okolje vedno vedelo, katero metodo poklicati, ne da bi iskali hierarhijo dedovanja. Med prevajanjem se lahko optimizirajoči prevajalnik celo odloči, da vstavi vse zasebno
in dokončno
metode za izboljšanje učinkovitosti. zasebno
metode kot dokončno
. Prevajalnik ne bo dovolil nobenega zasebno
metoda, ki jo je treba preglasiti. Prav tako bodo vsi prevajalniki preprečili preglasitev podrazredov dokončno
metode. dokončno
s in zasebno
s, da so v vrstici? Kratek odgovor je ne. Obnašanje optimizacije bo odvisno od prevajalnika in njegovih nastavitev.
Preberite več o tej temi
- Želijo več? Glej Vprašanja in odgovori o Javi Kazalo za celoten katalog Vprašanj
//www.javaworld.com/javaworld/javaqa/javaqa-index.html
Ta zgodba "Zasebno in končno?" je prvotno objavil JavaWorld.