2012-03-16 5 views
6

So che quando si esegue un metodo final in java, non può essere sovrascritto.non posso avere entrambe le parole chiave sulla stessa riga: private final ...()?

Quando un metodo è private, è possibile accedervi solo dai metodi e dai membri di quella determinata classe in cui esiste il metodo.

Quindi, vuol dire che dal momento che il metodo non è possibile accedere sia inutile cercare di verificare se può essere ignorato perché ho scritto la seguente dichiarazione e ottengo il seguente avviso:

privata metodo AddCode è dichiarata finale

private final void addCode(String code) 
    { 
     //codes here... 
    } 

risposta

8

Beh, mezzo privato nessuno sta per accedere al metodo a parte te e ultimo significa che nessuno può sovraccaricare il metodo. Ma dal momento che l'unica persona con cui hai accesso è te, non ha senso. Non puoi essere la tua superclasse.

È come bloccare un documento per le scritture mentre l'unica persona con accesso al file sei tu.

+1

... quasi come un uomo-a-luna che chiude a chiave la sua casa. –

2

Un metodo privato non può essere sovrascritto perché non è visibile alle classi figlio.

+0

gracchiare, è per questo che non posso avere sia il privato che la finale sulla stessa riga di dichiarazione? – helpdesk

+0

È un avvertimento perché non ha senso avere un metodo finale privato. Nota: una variabile finale privata ha senso. –

1

Un metodo non può essere ignorato se è definitivo, privato o statico.

+0

quindi, avevo ragione, non ha senso rendere un metodo privato oltre che definitivo o statico allo stesso tempo? hmm ... – helpdesk

+0

per essere precisi, se il metodo è privato o statico, è ridondante anche contrassegnarlo come finale. Il contrario non è vero però. –

Problemi correlati