翻看think in java时,看到这么一段“可以在运行时刻修改这些成员对象,以实现动态修改程序的行为”。本来以为继承算是一种方法,但紧跟着看到“继承(inheritance)并被具备这样的灵活性,因为编译器必须对通过集成而创建的类施加编译时刻的限制。”仔细一想,倒也是的。
那么,我的问题是,要想在运行时修改修改类的成员,动态修改程序行为,都有什么方法呢?

解决方案 »

  1.   

    没有人回答,看来我问得不是很好吧,因为我当时对问题也不是很清楚.
    现在我稍稍明白了点,举例来说:子类和父类保持相同的变量和方法定义,然后子类以不同实现重载该方法.这样就可以定义一个被不同子类对象使用的接口,并且子类的重载方法是在运行时被调用.
    例 class supClass{
           int i;
           int j;
           
           supClass(){
                 i=1;
                 j=2;
               }       int plus(){return 0}
       }   class subClass{
           int plus(){return i+j;}
       }   class a{
           public static voed main(String args[]){
                 subClass bb = new subClass();  
                 supClass aa;//定义一个通用接口
                 
                 aa = bb;
                 return bb.plus();//子类的重载方法会在运行时调用  
                   
               }
       }
    -----------------------------------------------------------------------------------
    以上是我查了一些书籍后对运行时修改程序的一个认识,不知道对不对,如果有人路过,请输出你的看法,谢谢.
      

  2.   

    subClass extends supClass
    另外
    subClass bb = new subClass();  
                 supClass aa;//定义一个通用接口
                 
                 aa = bb;
                 return aa.plus();//这样才能看到多态的效果 
      

  3.   

    依旧没有看明白"运行时修改程序"如果你是想实现多态的话 Father fs = new Son();
    fs.method();
      

  4.   

    谢谢两位,subClass extends supClass是我忘写了,的确需要。
    至于我说的“运行时修改程序”是think in java翻译的一个说法,我想多态的效果应该就是这种情况。
      

  5.   

    楼主误解了吧,所谓“修改这些成员对象”,也就是调用 getter/setter 来换一个对象吧