如果A中的方法被B覆写,似乎C中调用的时候,只能触发B中的方法,无法触发A中的方法;

解决方案 »

  1.   

    A
    B
    C
    晕,如果A中的方法不是私有的,一定被B继承了,因此也就属于B。所以,C要用的话,还是用super 就可以了。
      

  2.   

    如果是类方法,就使用类名调用,比如A.method()
      

  3.   

    如果是私有的,子类肯定无法访问.
    如果希望子类可以访问,一般用protected修饰
    如果B覆盖了A的同一个方法,C肯定无法调用到A的同名方法了.
      

  4.   

    一般来说是无法实现非直接继承类的方法覆盖的
    而且在调用的时候也只能用class.method调用(这里method指的是有重名的method)
    这样来说,就只能把A和C类里的method写成static
    然后用A.method,C.method调用
    不必要去覆盖
      

  5.   

    privare修饰的函数,只能由本类里面的方法调用
    protected修饰的函数,在private的基础上再加一个子类可以访问super()就是父类的构造函数,它的访问权限和一般函数一样如果要实现同名函数,就直接覆盖啊
      

  6.   

    楼主的意思是否是这样的呢?
    public class A
    {
       public void display()
       {
          System.out.println("I am in A");
       }
    }
    public class B extends A
    {
       public void display()
       {
           System.out.println("I am in B");
       }
    }
    public class C extends B
    {
       public void display()
       {
          System.out.println("I am in C");
       }
    }
    你的意思是要在C中调用B中的display()可以用super.display(),那么在C中调用A中的display()要怎样是吧?
      

  7.   

    我也想知道,用super可以取得直接超类的对象,“超超类”的对象该如何取得???
      

  8.   

    如果在B里 A.method()和super.method()一样效果 何必设super这个关键字啊
    我看过在超类里方法是public 那不是更没意义用super了  有人指点下吗?