Behavioral Design ◾ 191
“virtual” with “override” claries the intent of class design, and is illus-
trated in Example 7.6. e class hierarchy in Example 7.6 is the same as
that in Example 7.5 except that it is written in C#.
Example 7.6: C# Virtual Functions Tagged and then Overridden
// C# class design – tagged function calls dynamically bound
// redefined functions must be labeled ‘override’
class FirstGen
{ protected int level;
public Gen(int a = 100, int b = 1000)
{ level = 1; }
public virtual int simple(int x, int y)
{ return x + y; }
}
class SecondGeb: FirstGen
{ public SecondGen(int a = 100, int b = 1000): base(a,b)
{ level = 2; }
public override int simple(int x, int y)
{ return x * y; }
public virtual int expand(int ...