June 15, 2002 - Using hide
June 15, 2002 Using hide Tips: June 2002
Yehuda Shiran, Ph.D.
|
hide
behavior. The class FirstBase
has two methods: pitcher()
and hitter()
, each printing a unique message:
class FirstBase {
function pitcher() { print("I am a pitcher on first base"); }
function hitter() { print("I am a hitter on first base"); }
}
Let's define a derived class now. It redefines both the pitcher()
and the hitter()
methods. The pitcher()
method will be marked as hide
, and the hitter()
function will be marked as override
:
class SecondBase extends FirstBase {
hide function pitcher() { print("I am a pitcher on second base"); }
override function hitter() { print("I am a hitter on second base"); }
}
Let's create an instance of the derived class, SecondBase
:
player : SecondBase = new SecondBase;
and call his pitcher()
and hitter()
methods:
player.pitcher();
player.hitter();
The output should reflect the default of overriding the base methods:
I am a pitcher on second base
I am a hitter on second base
But if we set a variable of type FirstBase
, say player2
, pointing to player
, we get different results. The override
function of the derived
class SecondBase
indeed overrides the base class method. The hide
function of the derived class, though, does not override the base class, when the variable is of the base class type. Here is the code:
player2 : FirstBase = player;
player2.pitcher();
player2.hitter();
and here is the output:
I am a pitcher on first base
I am a hitter on second base
To learn more about JScript .NET, go to Column 110, JScript .NET, Part IV: Inheritance.