2013-06-07 10 views
6

Mam superklasę i chcę użyć zmiennej, która znajduje się wewnątrz tej nadklasy w mojej podklasie. Jak to możliwe?jak użyć zmiennej z nadklasy do podklasy?

+0

Jeśli zostanie zadeklarowany jako "protected", będzie dostępny. – fge

+0

Przeczytaj [to] (http://docs.oracle.com/javase/tutorial/java/javaOO/accesscontrol.html) i [to] (http://docs.oracle.com/javase/tutorial/java/IandI /subclasses.html) ze ścieżek Java. – Brian

Odpowiedz

8

Po prostu wykonaj pole protected, co oznacza, że ​​powinno być widoczne dla wszystkich klas pochodnych.

0

Jeśli jest publiczny lub chroniony, powinien być widoczny we wszystkich metodach podklasy. Możesz go zobrazować jako global variable w podklasie.

3

Mam nadklasę i chcę użyć zmiennej, która znajduje się wewnątrz tej nadklasy w mojej podklasie. Jak to możliwe?

Jeśli zmienna jest zadeklarowana jako protected lub public (lub) zmienna ma default uprawnienia dostępu (w tym przypadku nie określono z jakiekolwiek słowo kluczowe) i są one w tym samym opakowaniu (-> Możesz uzyskać dostęp . to w podklasie bezpośrednio można użyć this słowa kluczowego, jeśli są specyficzne

Przykład:..

public class A{ 
     protected int field=1; 
    } 
    public class B extends A{ 
     public B(){ 
      System.out.println(this.field); 
     } 
     public static void main(String args[]){ 
      new B(); 
     } 
    } 

Należy pamiętać, że nadrzędnym zmiennej nie jest możliwe, jeśli masz zmienną dowcip h takie samo imię jak w super klasie, więc masz pecha, aby uzyskać bezpośredni dostęp do niego. Następnie możesz użyć słowa kluczowego super.

+2

Istnieje jeszcze jedna możliwość dla 'super.field':' ((A) this) .field'. –

Powiązane problemy