K: Olettaen että:
yksityinen
menetelmiä ei voida ohittaa alaluokillalopullinen
menetelmiä ei voida ohittaa alaluokillalopullinen
menetelmät mahdollistavat nopeamman koodin käännettäessä optimoinnilla(javac -O)
Kysymykseni ovat: A: Kuten huomautat, alaluokat eivät välttämättä ohita No, käytäntö julistaa kaikki Joten vastaamaan kysymykseen 1 ei tarvitse julistaa Kysymyksestä 2 optimoiva kääntäjä ja JVM voivat hyödyntää Joten, vastaamaan kysymykseen 2, kyllä, kaikki kääntäjät käsittelevät Mielenkiintoisempi kysymys: Optimoivatko kaikki kääntäjät merkintä: Yksityisen finaalin keskustelu koskee vain menetelmiä. Yksityisiä lopullisen jäsenen muuttujia kohdellaan eri tavalla yksityinen
menetelmiä lopullinen
yhtä hyvin?yksityinen
menetelmät kuten lopullinen
?yksityinen
suunnitellut menetelmät. Lisäksi lopullinen
avainsana kertoo kääntäjälle, että alaluokat eivät saa ohittaa menetelmää sen käyttöoikeustasosta riippumatta. Siitä asti kun yksityinen
viittaa jo siihen, että alaluokka ei voi ohittaa menetelmää, julistamalla a yksityinen
menetelmä olla lopullinen
on tarpeeton. Ilmoituksen tekeminen ei aiheuta ongelmia, mutta siitä ei myöskään saavuteta mitään yksityinen
s otetaan automaattisesti huomioon lopullinen
. yksityinen
menetelmiä lopullinen
on yksi sivuvaikutus. Kaikki aloittelevat Java-ohjelmoijat, jotka kohtaavat koodisi, rinnastavat käyttöösi yksityinen finaali
ajattelemalla sitä yksityinen
s on ilmoitettava tällä tavalla. Joten voit arvioida, kenellä on ja kuka ei ole ollut yhteydessä koodisi kanssa. Se voi osoittautua mielenkiintoiseksi harjoitukseksi. yksityinen
jäsenet lopullinen
. yksityinen
menetelmät ja lopullinen
menetelmiä. Koska alaluokat eivät välttämättä korvaa näitä tyyppejä, dynaamista sidontaa ei tarvitse suorittaa ajon aikana. Alaluokat eivät koskaan ohita menetelmää, joten ajonaikainen tieto aina tietää mitä menetelmää kutsutaan hakematta perintöhierarkiaa. Käännöksen aikana optimoiva kääntäjä voi jopa päättää sisällyttää kaikki yksityinen
ja lopullinen
menetelmiä suorituskyvyn parantamiseksi. yksityinen
menetelmät kuten lopullinen
. Kääntäjä ei salli mitään yksityinen
menetelmä ohitetaan. Samoin kaikki kääntäjät estävät alaluokkien ohittamisen lopullinen
menetelmiä. lopullinen
s ja yksityinen
s niin, että ne ovat linjassa? Lyhyt vastaus on ei. Optimointikäyttäytyminen riippuu kääntäjästä ja sen asetuksista.
Lisätietoja tästä aiheesta
- Haluta lisää? Katso Java-kysymykset ja vastaukset Hakemisto koko Q & A-luetteloon
//www.javaworld.com/javaworld/javaqa/javaqa-index.html
Tämä tarina "Yksityinen ja lopullinen?" julkaisi alun perin JavaWorld.