class base1
{
    public int a;
}
class base2 extends base1
{
    public int a;
}
class base3 extends base2
{
   super.a=4;
}
这里访问的a是base2里面的a 那么我想访问base1里面的a怎么办啊? c++是通过作用域运算法的。那java对于这样的情况怎样处理啊?

解决方案 »

  1.   

    这里只能使用父类也就是base2中的a,单重继承。
      

  2.   

     应该是base2中的吧,因为base3 继承的是base2
      

  3.   

    你在base2里面写个构造方法啥的,然后让base3访问就行吧
      

  4.   

    那你在class2里面加上super.a=a;
    或者直接new一个class1的实例,然后改吧
      

  5.   

    看来java不支持这样的写法啊。。刚学java不是太会谢大家了!
      

  6.   

    把class1的 a 改个名字不就可以了啊?
    不改的话 class2的 a 把class1 的 a 给覆盖了啊
      

  7.   

    1.要将类名首字母大写;
    2.base3的类体内不能直接写super.a(语法检查通不过的);
    3.java只有单继承,它不知道自己的爷爷是谁。