Understanding Member Shadowing
C# provides a facility that is the logical opposite of method overriding termed shadowing. Formally
speaking, if a derived class defines a member that is identical to a member defined in a base class,
the derived class has
shadowed the parent’s version. In the real world, the possibility of this occur-
ring is the greatest when you are subclassing from a class you (or your team) did not create
yourselves (for example, if you purchase a third-party .NET software package).
For the sake of illustration, assume you receive a class named ThreeDCircle from a coworker
(or classmate) that defines a subroutine named Draw() taking no arguments:
class ThreeDCircle
{
public void Draw()
{
Console.WriteLine("Drawing a 3D Circle");
}
}
You figure that a ThreeDCircle “is-a” Circle, so you derive from your existing Circle type:
class ThreeDCircle : Circle
{
public void Draw()
{
Console.WriteLine("Drawing a 3D Circle");
}
}
C H A P T E R 6
Do'stlaringiz bilan baham: |