2015-07-25 14 views

Odpowiedz

9

Od xyzws,

Klasa może zadeklarować zmienną o tej samej nazwie, jako zmiennej dziedziczonej od jego klasy nadrzędnej, a tym samym „ukrycie” lub shadowing wersji dziedziczone. (To jest jak nadrzędnymi, ale dla zmiennych.)

więc ukrywanie w zasadzie oznacza, że ​​utworzyliśmy zmienną o tej samej nazwie co zmienna od odziedziczonej zakresu oraz ostrzeżenie jest tylko pozwalając wiesz, że zrobiliśmy to (na wypadek, gdybyś potrzebował dostępu do zmiennej dziedziczonej oraz zmiennej lokalnej).

Przykładem jest:

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; } 
} 

W tym przykładzie Sub ukrywa wartość name podane przez Base z jego własnej wartości - "Sub". Eclipse ostrzeże Cię - na wypadek gdybyś potrzebował oryginalnej wartości zmiennej name - "Base".

+2

Wow, to było miłe wyjaśnienie, dziękuję kolego. – theapache64