问题有点绕口。
我试着用例子说明:abstract class A {
    //
    public void method() {
    //
    }
    //
}
class B extends A {
    //
    public void method() {
    //覆盖超类A中的同名方法
    }
    //
}
class C {
    A sample = new B();
    sample.method();    // 这儿想直接调用A中的method(),但是已被覆盖,怎么办???
}
将sample塑型为A类型似乎不可能,因为A是抽象的。
A,B都是别人写的,所以无法改动……
这时候还有办法吗?

解决方案 »

  1.   

    在B中写多一个方法super A中的method咯
      

  2.   

    再搞个D对象继承A,但别覆盖其method方法
      

  3.   


    class D{
     A a;
     B b; public D(){
      A a = new A();
      B b = new B();
     }
     public void method1(){
        a.method();
     }
     public void method2(){
        b.method();
     }
    }
    不知这样符合你的要求不~
      

  4.   

    漏看一个关键字。sorry~~~那抽象类中的method有没实现呢如果有实现,你直接用一个类继承抽象类不重写method,直接super调用A的method不就得了?
      

  5.   

    应该就是3楼说的那样了
    class D extends A{
    public void method(){
    super.method();
    }
    }
      

  6.   

    http://www.5fuyou.com/images/head/DownLoad.html 分享一个编程视频下载地址,很好,很强大