2015-07-25 10 views

risposta

9

Da xyzws,

Una classe può dichiarare una variabile con lo stesso nome di una variabile ereditata dalla sua classe genitore, in tal modo "nascondere" o shadowing la versione ereditata. (Questo è come l'override, ma per le variabili.)

Così si nasconde in pratica significa che hai creato una variabile con lo stesso nome di una variabile da un ambito ereditato, e l'avviso è solo voi lasciando sapere che si l'ho fatto (nel caso in cui avessi bisogno di accedere alla variabile ereditata e alla variabile locale).

Un esempio è:

public class Base { 
    public String name = "Base"; 
    public String getName() { return name; } 
} 


public class Sub extends Base { 
    public String name = "Sub"; 
    public String getName() { return name; } 
} 

In questo esempio, Sub nasconde il valore di name data dal Base con il proprio valore - "Sub". Eclipse ti avviserà - nel caso in cui avessi bisogno del valore originale della variabile name - "Base".

+2

wow, è stata una bella spiegazione, grazie amico. – theapache64