Supponiamo di avere un metodo in una classe Java e non voglio che alcuna sottoclasse di tale classe sia in grado di sovrascrivere quel metodo. Posso farlo?Non consentire le sottoclassi dal metodo Java sovrascrivente
risposta
è possibile dichiarare il metodo di essere final
, come in:
public final String getId() {
...
}
Per ulteriori informazioni, vedere http://docs.oracle.com/javase/tutorial/java/IandI/final.html
semplicemente fare il metodo finale.
Se il tuo metodo non fa parte dell'API creata e non viene chiamato direttamente dalle sottoclassi, preferisci semplicemente creare il tuo metodo private
.
Se la gerarchia di classe è contenuta in un singolo pacchetto, impostare il metodo in ambito pacchetto (senza parola chiave di ambito). Pertanto, solo il mondo esterno (incluso i tuoi altri pacchetti personali) non può accedervi e quindi non può ignorarlo.
Se il metodo non è realmente parte della vostra API, ma deve essere visibile da sottoclassi, anche esterni, preferiscono lo rendono protected
e final
Infine, se il metodo è parte della vostra API, lo rendono public
e final
.
Questo è così ovvio, perché non ci ho pensato? – xorinzor