在父类里定义一个set方法,如
public void setFlag (boolean flag) {
    this.flag = flag;
}
然后在子类里调用含有if (flag) 判断的父类方法之前,调用set方法,来改变父类的流程~~~

解决方案 »

  1.   

    楼上这种方法, 那派生子类就没必要了, 其它什么类都可以干预产生了1个父类实例,调用相应方法do(),此时没子类实例,怎么影响到do()中流程.
      

  2.   

    子类override(覆盖)父类的那个needTurn()方法啊比如你想控制的那个父类father的方法是method(),那在子类son里面重写needTurn()方法调用的时候 son s = new son(); s.method();这样应该可以的,我程序测试过,如果我没理解错你的意思的话
      

  3.   

    楼上这种方法, 那派生子类就没必要了, 其它什么类都可以干预产生了1个父类实例,调用相应方法do(),此时没子类实例,怎么影响到do()中流程.
    ___________________________________________________________
    当然是靠判断条件的默认值了
    在大部分情况下,可能只用到默认值就够了
    但是有某些子类可能需要的是判断的另一个分支,那么就用这种方法实现了呀~~~~
      

  4.   

    DreamDragon_NEU(梦龙) 的方法如果只想让子类可以干预,可以把方法和属性声明为protected
    protected void setFlag (boolean flag) {
        this.flag = flag;
    }楼主,如果父类的needTurn()方法是private的,那么你覆盖是没有用的
      

  5.   

    .....
    不可能  
    不忘记忘记类的特性之一  封装
    如果父类中的函数的流程可以被改变 那还要面向对象来干什么???
    我随便写个子类 不是都可以把JAVA API中的好多类都改变了啊 不知道楼主想改变父类的流程来干什么???
      

  6.   

    哦,谢谢大家了,大概明白了一点,我去试试,其实也是突然的想法,好比有时我需要转码,有时不需要,但是转码的方法是在一个jar文件里的,所以我才想弄个什么东西来做开关,谢谢大家了