一种方法:
public class B extends A {
public void doB(){
System.out.println("I am doB");
} public B() {
             doB();
         }
}

解决方案 »

  1.   

    A a = new B();
    (B)a.doB();
      

  2.   

    to trumplet(检查) :这个办法不行。
    实际上这个问题是这样的,我需要一个统一的入口操作所有由基类继承出来的类。
    举个例子:
    比如存在一个方法doSometing(A a){
    a.doA();//就是上面类B继承类A的方法
    a.doB();//类B自有的方法
    }而这个a的实例是从一个静态抽象工厂里面产生的,然后我用一个配置文件决定到底要产生什么样的实例。
      

  3.   

    那你上面的设计有问题啊,doSomething的接口是A,但是又需要对B的方法调用,明显doSomething的接口应该改成B,then
    doSomething(B b) {
        B b = new B();
        b.doA();
        b.doB();
    }
      

  4.   

    to to trumplet(检查) :报错为:Syntax error on token "a", "=", "*=", "/=", "%=", "+=", "-=", "<<=", ">>=", ">>>=", "&=", "^=", "|=", "++", "--" expected C.java testeclipse/test
      

  5.   

    to darknova(darknova) :这个我也知道,但是存在一个问题,比如B,C,D,E....都继承与A,而各自都EXTENDS少数与A不同的方法,这样的话,就需要大量不同的类调用接口去实现,我想试试JAVA中有没有这种方法,能够将接口调用统一起来,这个对系统的分层应该是有很大的好处的。
      

  6.   

    这个我也知道,但是存在一个问题,比如B,C,D,E....都继承与A,而各自都EXTENDS少数与A不同的方法,这样的话,就需要大量不同的类调用接口去实现,我想试试JAVA中有没有这种方法,能够将接口调用统一起来,这个对系统的分层应该是有很大的好处的。-----------------------------------------------------------------------这样是不现实的,调用自己扩展的方法,就必须用下塑造型,成为子类的类型。
      

  7.   

    public class C {        public static void main(String[] args) {
                    A a=new B();
                    a.doA();
                    ((B)a).doB();//再加个括号,这个是我在JB2005运行通过的。        }
    }
      

  8.   

    to trumplet(检查): 这样是可以实现的!
      

  9.   

    好晕呀,这叫什么问题呀?
    编译时类型不影响运行结果,只要是对象都可以声明为Object类型.
    但是编译器不会让你调用编译类型不匹配的方法