假设有A,B,C三个类,其中B继承自A,C继承自B。
A里面有一个方法是func1()。
B中重载了func1(),重载中使用了super.func1()
现在想在C中重载func1(),但是在里面想调用A里面的func1,怎么办呢?

解决方案 »

  1.   


    貌似你讲错了吧 应该是overiding  method
      

  2.   

    在B 里保留个方法 比如叫:func2(),里面有条语句 super.func1();
    再在C里重写func2() super.func2();
    C的对象调用func2(),就是调用的A类的func1().可能不是楼主要的意思。
      

  3.   

    最笨最直接的new A().func1(),2楼有想法。少继承多组合。
      

  4.   


    我的问题就在于,我不能改A和B的代码(比如说,是人家的遗留代码,而我没权限去改),而只能写C的代码。
      

  5.   

    A a = (A)new C();
    a.func1
      

  6.   

    A a = (A)new C();
    a.func1();
      

  7.   

    A a = new C();
    这个中a只能调用A的方法    可是可以强转  (C)a.C的方法   
      

  8.   

    老兄,就是你这个帖子让我醍醐灌顶啊!我来理解下:你的C已经重写了func1(),说明只要你实例化时用的是  newC();不好意思,你只能调用C重写的funcl(),即使你已经向上转型//所谓父类引用指向子类对象也想调用A中的funcl();你只 能  new A();