2015-12-02 3 views
1

Пусть у меня есть код, как показано ниже:Доступ косвенную супер переменной класса, которая была скрыта в третьем расширенном классе

class A { 
    int a = 1; 
    } 

    class B extends A { 
    int a = 2; 
    } 

    class C extends B { 
    int a = 3; 

    void print_it() { 
    int a = 4; // Local variable "a" to the " print_it " method 

    System.out.println(a);  //Should be 4 

    System.out.println(this.a); //Should be 3 

    System.out.println(super.a); //Should be 2 

    System.out.println("HOW DO I PRINT \" a \" OF THE \" CLASS A  \" ");  //I need to print 1 
    } 

    public static void main(String[] argue) { 
    C obj = new C();    
    obj.print_it(); 
    } 
    } 

Как я могу получить доступ к «а» в «класса А» косвенно унаследована «класс Я знаю, что могу создать объект класса «А», я также знаю, что могу создать метод в «классе B», чтобы вернуть «super.a» («a» переменную «class A») конечно, если бы он был статичным, я мог бы получить доступ к нему, как «Aa».

Если есть какой-либо другой способ доступа к нему, я просто прошу просветить меня.

(спасибо заранее).

ответ

2

В ролях А и затем получить доступ к переменной:

((A)this).a 
+0

я, возможно, стоит отметить, что это работает только с переменными, а не с методами. – ParkerHalo

 Смежные вопросы

  • Нет связанных вопросов^_^