调度和重新定义

时间:2014-01-30 06:46:01

标签: java dispatch

我有两个库(ClassA和ClassB)类和一个转轮类。现在我更新了一个库类(ClassAUpdate),这会导致我当前的运行者类出现问题。

我认为其中一个问题是因为redispatching这会产生无限递归。但是我应该找到另外两个问题。也许重新定义?

如何在没有这些问题的情况下对运行者类进行更改?也许在跑步者类中有一个以ClassB为组件的新类?

ClassA的:

abstract class LibClassA
{
    public int m1( int param )
   {
      return m5( param / 2 );
   }

   public int m2( int param )
   {
      return param + 45;
   }

   abstract public int m3( int param );

   public int m5( int param )
   {
      return param * 6;
   }
}

ClassB的:

class LibClassB extends LibClassA
{
   public int m1( int param )
   {
      int result = 773 - super.m1( param + 5 );
      if( param < 4 )
      {
          result += m2( param );
      }
      return result;
   }
   public int m3( int param )
   {
      return m1( param * 2 ) + 23;
   }
}

ClassAUpdate:

abstract class LibClassA
{
   public int m1( int param )
   {
      if( param >= 10 )
      {
          return m2( m5 (param, 5) );
      }
      else
      {
         return m4( param );
      }
   }

   public int m2( int param )
   {
      return param + 45;
   }

   abstract public int m3( int param );

   public int m4( int param )
   {
      return m5( param / 2, 6 );
   }

   public int m5( int param, int param2 )
   {
      return param * param2;
   }
}

亚军类:

class OwnClass extends LibClassB
{

   public int m2( int param )
   {
      return 5 * m3( param );
   }
   public int m4( int param )
   {
      return param * param;
   }

   public int m5( int param )
   {
      return 165;
   }

   public static void main( String args[] )
   {
      OwnClass obj = new OwnClass();
      System.out.println( obj.m3( 2 ) );
      System.out.println( obj.m4( 9 ) );
      System.out.println( obj.m3( 3 ) );
   }
}

0 个答案:

没有答案