Recentemente ho attraversato un paio di libri per insegnare a me stesso Java e, fortunatamente, soprattutto per fortuna, ho incontrato pochissime difficoltà. Questo è appena cambiato.
Ho letto una sezione sotto l'ereditarietà e l'intera sottoclasse della superclasse
-
Quando viene creato un nuovo oggetto superclasse, è, come tutti gli oggetti, assegnato un riferimento (superRiferimento in questo esempio)
-
Se viene creato un nuovo oggetto sottoclasse (con la sottoclasse di definizione che estende la superclasse) e quindi il riferimento superReference è impostato per fare riferimento a tale anziché all'oggetto originale, è a mia conoscenza che, poiché il riferimento è fatto per una superclasse, solo i membri definiti dalla superclasse possono accedere dalla sottoclasse.
Primo - è corretto?
Secondo: Se sto sovrascrivendo un metodo e quindi ne ho uno nel super e uno nel sub, e creo un oggetto superclasse e poi assegno il suo riferimento, come ho fatto sopra, a un oggetto sottoclasse, dal principio chiamato qualcosa come Dynamic Method Dispatch , un metodo sovrascritto chiamato dovrebbe accedere in modo predefinito al metodo della sottoclasse giusto?
Bene, la mia domanda è:
Se un riferimento a un oggetto superclasse viene riconfigurato per un oggetto sottoclasse e negherà l'accesso diretto object.member
ai membri definiti in sottoclasse, solo i membri di supporto definiti superclasse, come può, se un riferimento superclasse viene riconfigurato per un oggetto sottoclasse, un metodo sottoposto a override si applica alla sottoclasse-oggetto se l'accesso è limitato dalla superclasse-reference-reference